[英]cmd.exe /k switch
我正在尝试使用 cmd 切换到目录,然后执行批处理文件
例如
cmd /k cd "C:\myfolder"
startbatch.bat
我也试过(没有成功)
cmd cd /k cd "C:\myfolder" | startbatch.bat
虽然第一行 (cmd /k) 似乎运行正常,但第二个命令从未运行。 我使用 Vista 作为操作系统
正确的语法是:
cmd /k "cd c:\myfolder & startbatch.bat"
ssg 已经发布了正确答案。 我只会将 /d 开关添加到cd
命令(例如cd /d drive:\\directory
)。 这可确保命令在当前目录与您要 cd 到的目录位于不同驱动器上的情况下起作用。
我看不到解决这个问题的答案,因此如果有人需要访问名称中有空格的目录,您可以添加额外的引号,例如
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 工具的访问权限。
cmd cd /k "cd C:\myfolder; startbatch.bat"
或者,为什么不运行cmd /kc:\\myfolder\\startbatch.bat
,并在 .bat 文件中执行cd c:\\myfolder
?
您可以在 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
,此时剩余的" "
将路径作为字符串处理。
您也可以使用&&
, |
和||
取决于你想要达到的目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.