在执行之前,如何通过命令行设置可执行文件的工作目录?

Ste*_*idi 48 windows powershell command-line .net-framework

如果我在命令行上运行一个程序,其位置是通过Path环境变量解析的,则该程序的工作目录通常设置为其安装目录。

我想从控制台窗口运行这样的程序并将其工作目录设置为当前或其他显式目录。我可以通过将程序临时复制到我的工作目录来做到这一点——在 cmd.exe 或 powershell.exe 环境中是否有另一种方法来实现这一点?

与此任务类似的 Windows shell 是创建一个快捷方式并相应地设置“开始于”属性。

Ryn*_*ant 56

要显式设置工作目录,PowerShell 解决方案是将Start-Processcmdlet 与-WorkingDirectory参数一起使用。

Start-Process -FilePath notepad.exe -WorkingDirectory c:\temp
Run Code Online (Sandbox Code Playgroud)

使用 alias start、位置参数和部分参数名称,这可以写为:

start notepad.exe -wo c:\temp
Run Code Online (Sandbox Code Playgroud)

CMD 也有一个START命令。为此,请使用/D参数指定工作目录:

START /D c:\temp notepad.exe
Run Code Online (Sandbox Code Playgroud)


Law*_*ceC 10

以下将起作用,进行适当的替换并使用.cmd扩展名保存它。

@echo off 
C:
chdir C:\desired\directory
C:\full\path\of\command.exe
Run Code Online (Sandbox Code Playgroud)

将此批处理文件放在您的目录中%PATH%,您应该能够从任何cmd.exe实例调用它。

  • 请注意,如果工作目录和可执行文件不在同一分区/驱动器上,则可能会出现问题。 (2认同)
  • @LawrenceC,但是这个解决方案需要一个临时文件。如果不使用临时文件就可以实现这一点会更好 (2认同)