![在执行可执行文件之前,如何通过命令行设置其工作目录?](https://linux22.com/image/1306821/%E5%9C%A8%E6%89%A7%E8%A1%8C%E5%8F%AF%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E4%B9%8B%E5%89%8D%EF%BC%8C%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%91%BD%E4%BB%A4%E8%A1%8C%E8%AE%BE%E7%BD%AE%E5%85%B6%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95%EF%BC%9F.png)
如果我在命令行上运行一个程序,其位置通过小路环境变量,程序的工作目录一般设置为其安装目录。
我想从控制台窗口运行这样的程序并将其工作目录设置为当前或其他明确目录。我可以通过临时将程序复制到我的工作目录来做到这一点 - 还有其他方法可以在 cmd.exe 或 powershell.exe 环境中实现这一点吗?
此任务的 Windows Shell 类比是创建一个快捷方式并相应地设置“启动于”属性。
答案1
要明确设置工作目录,PowerShell 解决方案是使用Start-Process
带有-WorkingDirectory
参数的 cmdlet。
Start-Process -FilePath notepad.exe -WorkingDirectory c:\temp
使用别名start
、位置参数和部分参数名称可以写成:
start notepad.exe -wo c:\temp
CMD 也有一个START
命令。为此,使用/D
参数指定工作目录:
START /D c:\temp notepad.exe
答案2
以下内容将起作用,进行适当的替换并使用扩展名保存.cmd
。
@echo off
C:
chdir C:\desired\directory
C:\full\path\of\command.exe
将此批处理文件放在您的目录中%PATH%
,您应该能够从任何cmd.exe
实例调用它。
答案3
您可以在 powershell 中执行类似操作(不要忘记前导点)
. "C:\Program Files\SomeFolder\someScript.cmd"