If I run a program on the command line whose location is resolved through the Path environment variable, the program's working directory is generally set to its installation directory.
I would like to run such a program from a console window and set its working directory to the current or other explicit directory. I was able to do this by temporarily copying the program to my working directory -- is there another way to accomplish this within the cmd.exe or powershell.exe environments?
The windows shell analogy to this task is to create a shortcut and set the "Start In" property accordingly.
3 Answers
To explicitly set the working directory, a PowerShell solution would be to use the Start-Process cmdlet with the -WorkingDirectory parameter.
Start-Process -FilePath notepad.exe -WorkingDirectory c:\tempUsing the alias start, positional parameter, and partial parameter name this could be written as:
start notepad.exe -wo c:\tempCMD also has a START command. For this, use the /D parameter to specify the working directory:
START /D c:\temp notepad.exe 0 The below will work, make appropriate substitutions and save it with a .cmd extension.
@echo off
C:
chdir C:\desired\directory
C:\full\path\of\command.exePut this batch file in a directory in your %PATH% and you should be able to invoke it from any cmd.exe instance.
You can do something like this in powershell (Don't forget the leading Dot)
. "C:\Program Files\SomeFolder\someScript.cmd"