2014-08-27 68 views
0

當我嘗試在Windows的cmd.exe我得到的errormessage的(由我翻譯)運行命令批處理腳本避讓空間不工作

C:\Windows\system32\cmd.exe /C "C:\Program Files (x86)\TorAES\certmgr.exe" -del -c -n "Certificatename" -s -r localMachine trustedpublisher 

: 命令「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啓動,但(明顯),我的論點是失蹤,我真的很需要他們自動刪除我的證書時,卸載我的程序。

我絕對不熟悉批處理腳本 是否有人能夠找到我的錯? 謝謝!

回答

1

參見cmd /?

如果指定了/ C或/ K,則在切換之後的命令行的其餘部分被處理爲命令行,其中,使用下列邏輯處理引號(」 )字符:

  1. 如果所有的下列條件都滿足,那麼在命令行上的引號字符將被保留:

    • 沒有/ S切換
    • 正好兩個引號字符
    • 在兩個引號字符之間沒有特殊字符 其中特別是下列之一:& <>()@^|
    • 還有的 兩個引號字符
    • 在兩個引號字符之間的串之間的一個或多個空格字符是一個可執行文件的名稱 。
  2. 否則,老辦法是,看第一個字符是 一個引號字符,如果是,捨去開頭的字符並 刪除最後一個引號字符在命令行上,在最後保留 任何文本報價字符。

所以,你可以添加一組外部引號:

C:\Windows\system32\cmd.exe /C ""C:\Program Files (x86)\TorAES\certmgr.exe" -del -c -n "Certificatename" -s -r localMachine trustedpublisher" 
+0

謝謝!我只是沒有想到命令本身可能是錯的。您的第二個解決方案適用於我:D – Coding 2014-08-27 23:19:09

+0

不客氣。我的第一個解決方案是錯誤的 - 刪除 – Blorgbeard 2014-08-27 23:32:02