找到文件夹路径后,我尝试在 bat 脚本中执行特定命令。以下是我目前所得到的:
@ECHO OFF
cmd /k "cd C:\"Program Files (x86)\"Microsoft Office\Office15\"
cscript ospp.vbs /dstatus
pause
我遇到的问题是执行cscript ospp.vbs /dstatus
答案1
如果该脚本被保存为 .bat 文件,是否有理由告诉批处理文件打开另一个命令行实例?
对于这个简单的脚本,您不需要这样做。此外,您的 cd 路径应该用双引号将整行括起来。以下更改将满足您的需求。
@ECHO OFF
cd "C:\Program Files (x86)\Microsoft Office\Office15\"
cscript ospp.vbs /dstatus
pause
答案2
您的脚本失败的原因有两个:-
cmd /k ...
创建 的新实例cmd
,运行指定的命令,然后从该实例提示,并且cmd
直到您键入才会继续执行原始操作exit
。- 即使你习惯于
cmd /c ...
执行命令字符串并立即退出,cd
子shell中的执行也不会影响原始中的当前目录cmd
。
要在脚本运行后保留当前目录,您可以使用:
cmd /c "cd C:\Program Files (x86)\Microsoft Office\Office15\ & cscript ospp.vbs /dstatus"
或者更简单地不要使用子 shell,而是使用pushd
而不是并在返回后cd
运行:-popd
cscript
@ECHO OFF
pushd "C:\Program Files (x86)\Microsoft Office\Office15\"
cscript ospp.vbs /dstatus
popd
pause