用於重定向子程序輸出的 CMD 文件

用於重定向子程序輸出的 CMD 文件

我需要一個接收兩個參數的批次檔:一個命令(帶有一些參數的檔案名稱)和一個檔案路徑 - 用於命令執行的輸出重定向。我嘗試了一些變體call %1 > %2,例如start %1 > %2在檔案“q.cmd”中,透過呼叫 asq "echo test" "log.txt"q 'echo test' 'log.txt'或with%1但沒有任何效果。我之前也嘗試過。在大多數情況下,它會列印“'echo 未被識別為內部或外部命令...”或類似的內容,有時會創建空的123.txt 或使用一些服務行,但不會根據我的需要使用“test”。我該如何解決這個問題?call %1q "echo test > log.txt"^>

答案1

q "echo test" "log.txt"將提供兩個參數。

「echo test」將單獨存在,不再是「Echo」後面跟著「test」作為 Echo 的參數,而是一個名為「echo test」的命令,該命令是無效的。

您需要將參數與命令分開,實際上批次腳本並不是執行此操作的最佳方法,特別是如果您需要動態數量的參數。考慮改用 PowerShell。

話雖如此,如果您想要一些簡單的、不那麼靈活的東西,並且仍然是一個批處理文件,那麼也許可以在批處理文件中嘗試以下操作: %2 %3 > %1.

然後,只需先指定輸出文件,然後指定命令,最後指定要與該命令一起使用的參數。

即:q log.txt echo Test、 或q log.txt echo "string with spaces to echo"

這些對我有用。 :)

相關內容