我正在尝试使用cmd切换到目录,然后执行批处理文件
e.g。
cmd /k cd "C:\myfolder"
startbatch.bat
我也尝试过(没有成功)
cmd cd /k cd "C:\myfolder" | startbatch.bat
虽然第一行(cmd / k)似乎运行正常,但第二个命令永远不会运行。我使用Vista作为操作系统
答案 0 :(得分:45)
正确的语法是:
cmd /k "cd c:\myfolder & startbatch.bat"
答案 1 :(得分:8)
ssg已经发布了正确答案。我只会添加/ d切换到cd
命令(例如cd /d drive:\directory
)。这样可以确保命令在当前目录与您要cd到的目录不同的驱动器上运行。
答案 2 :(得分:2)
cmd cd /k "cd C:\myfolder; startbatch.bat"
或者,为什么不在.bat文件中运行cmd /k c:\myfolder\startbatch.bat
和cd c:\myfolder
?
答案 3 :(得分:1)
您可以在Windows中使用&
或&&
作为命令分隔符。
示例:
cmd cd /K "cd C:\myfolder && startbatch.bat"
答案 4 :(得分:0)
我将此作为答案,因为我在评论中看到了这个问题,但尚无评论。
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
,此时剩余的{{1}将路径作为字符串来处理。
您还可以使用" "
,&&
和|
,具体取决于您希望实现的目标。
答案 5 :(得分:0)
我无法找到解决此问题的答案,因此如果有人需要访问名称中包含空格的目录,您可以添加其他引号,例如
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工具的访问权。