繁体   English   中英

cmd.exe /k 开关

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM