Click here to Skip to main content
Click here to Skip to main content

Running a .bat file as administrator - Correcting current directory

By , 20 Oct 2010
 
When you run a batch file as administrator under windows vista and 7 the current directory gets set to C:\windows\system32. This can prevent your scripts from working correctly if you use relative paths.
 
To fix this problem, include these two lines at the top of your .bat script:
 
@setlocal enableextensions
@cd /d "%~dp0"
 
This will change the current directory to the location of the .bat file.
 
How it works:
 
@setlocal enableextensions - controls the visibility of environment variables[^] and enables cmd extensions[^].
 
@cd /d "%~dp0" - Changes the current directory to %~dp0 which is a special batch parameter[^] that expands to the drive and directory that batch file is located in.
 
%0 expands to the full path and file name of the batch file, adding the ~dp modifier in the middle to make %~dp0 reduces the %0 value to just the drive and path.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Simon P Stevens
Software Developer
United Kingdom United Kingdom
Member
I discovered programming aged 11 with my school's BBC micro, and a book titled "Write your own space action games". (Their ideas of "space action" games were very different to mine. My ideas didn't include a bunch of * signs controlled via a text based menu)
 
I got hooked on VB for a while (mainly because I discovered I could replace the * signs with .bmp files) until someone pointed out the wonderful world of objects and Java. I also went thought a c++ phase.
 
I've now been a professional developer for 5 years.
 
My current language of choice is C#. I spend my free time playing with XNA and microcontrollers.

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
GeneralMy vote of 5memberwout de zeeuw31 Oct '12 - 3:15 
GeneralMy vote of 5memberTheMasterCylinder16 Oct '12 - 7:16 
GeneralMy vote of 5memberpolonggo7 Jun '12 - 18:37 
GeneralReason for my vote of 5 Great Help, Looking for It.membersumantamca22 Feb '12 - 20:32 
GeneralReason for my vote of 5 Thank you so much!member_WhiteRussian12 Nov '11 - 4:04 
GeneralGood spot - thanks for sharingmemberReiss1 Sep '11 - 23:55 
GeneralSensible advice. Love, you can easily find this documented b...memberRasqual Twilight21 Feb '11 - 8:24 
GeneralWherever did you find that ~dp ? Good job ! ;)memberLove Nystrom28 Oct '10 - 5:39 
GeneralRe: Wherever did you find that ~dp ?Good job ! ;)memberPIEBALDconsult22 Mar '12 - 12:10 
GeneralReason for my vote of 5 Tricks like these are stumbled upon ...memberE.F. Nijboer22 Oct '10 - 12:09 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Permalink | Advertise | Privacy | Mobile
Web02 | 2.6.130513.1 | Last Updated 20 Oct 2010
Article Copyright 2010 by Simon P Stevens
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid