当我尝试运行命令
时C:\Windows\system32\cmd.exe /C "C:\Program Files (x86)\TorAES\certmgr.exe" -del -c -n "Certificatename" -s -r localMachine trustedpublisher
在Windows cmd.exe中我收到errormessage(由我翻译): 命令“C:\ Program”拼写错误或不存在。
即使其他组合“不起作用:
C:\Windows\system32\cmd.exe /C 'C:\Program Files (x86)\TorAES\certmgr.exe' -del -c -n 'Certificatename' -s -r localMachine trustedpublisher
C:\Windows\system32\cmd.exe /C "'C:\Program Files (x86)\TorAES\certmgr.exe' -del -c -n 'Certificatename' -s -r localMachine trustedpublisher"
C:\Windows\system32\cmd.exe /C \"C:\Program Files (x86)\TorAES\certmgr.exe\" -del -c -n \"Certificatename\" -s -r localMachine trustedpublisher
不幸的是,如果我只是运行
C:\Windows\system32\cmd.exe /C "C:\Program Files (x86)\TorAES\certmgr.exe"
certmgr.exe启动但是(显而易见)我的参数丢失了,我真的需要它们在卸载我的程序时自动删除我的证书。
我绝对不熟悉批量编写。 有人能找到我的错误吗? 谢谢!
答案 0 :(得分:1)
请参阅cmd /?
:
如果指定了/ C或/ K,则将切换后的命令行的其余部分作为命令行处理,其中以下逻辑用于处理quote(“)字符:
如果满足以下所有条件,则会保留命令行中的引号字符:
- 否/ S开关
- 正好两个引号字符
- 两个引号字符之间没有特殊字符, special是以下之一:&<>()@ ^ |
- 之间有一个或多个空格字符 两个引号字符
- 两个引号字符之间的字符串是名称 可执行文件。
- 醇>
否则,旧行为是查看第一个字符是否为 引用字符,如果是这样,剥去主角和 删除命令行上的最后一个引号字符,保留 最后一个引号字符后面的任何文字。
所以你可以添加一组外部引号:
C:\Windows\system32\cmd.exe /C ""C:\Program Files (x86)\TorAES\certmgr.exe" -del -c -n "Certificatename" -s -r localMachine trustedpublisher"