How Do I Set an Executable's Working Directory via the Command Line, Prior to Executing It?

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:\temp

Using the alias start, positional parameter, and partial parameter name this could be written as:

start notepad.exe -wo c:\temp

CMD 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.exe

Put this batch file in a directory in your %PATH% and you should be able to invoke it from any cmd.exe instance.

2

You can do something like this in powershell (Don't forget the leading Dot)

. "C:\Program Files\SomeFolder\someScript.cmd"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest