我正在尝试使用cmd切换到目录,然后执行批处理文件
例如
cmd /k cd "C:\myfolder"
startbatch.bat
我也尝试过(没有成功)
cmd cd /k cd "C:\myfolder" | startbatch.bat
虽然第一行(cmd /k)似乎运行正常,但第二条命令从未运行。我使用 Vista 作为操作系统
正确的语法是:
cmd /k "cd /d c:\myfolder && startbatch.bat"
ssg 已经发布了正确答案。我只会将 /d 开关添加到
cd
命令(例如 cd /d drive:\directory
)。这可以确保命令在当前目录与您想要 cd 到的目录位于不同驱动器上时有效。
cmd cd /k "cd C:\myfolder; startbatch.bat"
或者,为什么不运行
cmd /k c:\myfolder\startbatch.bat
,并在 .bat 文件中执行 cd c:\myfolder
?
我看不到解决此问题的答案,因此如果有人需要访问名称中包含空格的目录,您可以添加其他引号,例如
cmd.exe /K """C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"" & powershell.exe"
在 PowerShell 中,您需要使用反引号 `
转义引号cmd.exe /K "`"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat`" & powershell.exe"
注意转义的引号
`"
在路径字符串内:
"`"C:\my path\`""
这将执行
cmd
中的正确命令,即用引号括起来的路径应该可以工作。
上面的示例命令将初始化 MSVC 开发人员命令提示符并返回 PowerShell,继承环境并授予对 MSVC 工具的访问权限。
您可以使用
&
或 &&
作为 Windows 中的命令分隔符。
示例:
cmd cd /K "cd C:\myfolder && startbatch.bat"
我给出这个作为答案,因为我在评论中看到这个问题,但还不能发表评论。
cmd /k "cd c:\myfolder & startbatch.bat"
有效,如果你有空间:
cmd /k "cd "c:\myfolder" & startbatch.bat"
据我了解,该命令作为
"cd "c:\myfolder" & startbatch.bat"
传递给 cmd,然后分解为 cd "c:\myfolder"
&
startbatch.bat
,此时剩余的 " "
将路径作为字符串处理。
您还可以根据您想要实现的目标使用
&&
、|
和 ||
。
对于任务计划程序:
设置 | 价值 |
---|---|
程序/脚本 |
|
添加参数(可选) |
|