2016-12-20 44 views
0

我想運行cmd.exe "D:a.bat"但我沒有得到任何東西。 它通過雙擊運行批處理文件時起作用。如何在命令行中使用cmd.exe將輸出保存爲文件?

在批處理文件中的代碼是:

echo teztttttt >> a.txt 

有人可以幫助我瞭解爲什麼通過cmd.exe運行該命令沒有產生預期的結果。

+3

你會得到什麼錯誤?還有什麼是'D:a.bat'?你不是指'D:\ a.bat'嗎? –

+0

真的不應該有任何需要運行.bat文件作爲cmd.exe的參數。 – Compo

回答

5

通常情況下,您不需要調用cmd.exe來執行批處理腳本。一個批處理腳本調用另一個批處理腳本的典型方法是使用call "D:a.bat" >> a.txt

但我會假設你有一個很好的理由通過CMD.EXE運行腳本。

閱讀文檔(cmd /?從命令提示符處),您將看到您必須在/C前加上您的命令。

cmd.exe /c "D:a.bat" 

與本守則的問題,您所顯示的,但如果你仔細閱讀的幫助下,你會看到有一些有趣的業務CMD.EXE如何處理引號。

如果必須引用腳本由於空間和/或毒物的字符,你也有引號後面的參數,那麼你可能不會得到你想要的東西,因爲CMD.EXE將刪除第一個和最後報價。

例如:

cmd.exe /c "my script.bat" "this&that" 

將嘗試(並且很可能會失敗)執行

my script.bat" "this&that 

其中

  • my是第一個節目名稱script.bat" "this是第一論點
  • &是命令並置運算符(它不引用或轉義)
  • that是第二命令

問題是由包圍整個命令行中一組額外的轉義引號的固定:

cmd.exe /c ^""my script.bat" "this&that"^" 

外部引號最初被轉義,所以&被正確引用。然後,當cmd.exe去除外部引號時,您將留下正確的命令字符串。

相關問題