2014-10-05 26 views
0

我想下面的參數傳遞到腳本的參數之一的名稱:CMD如何將參數傳遞給腳本並保存到文件

myscript.cmd "Foo" "Bar" "File" 

當第三個參數應與添加的擴展.log

在這個例子應該是File.log

SET logFile = "%~3" + .log 
echo logFileName is "%logFile%" 

echo %date% %time% got parameters "%~1" "%~2" >> "%logFile%" 

應該像上面的腳本,但不能夠使它發揮作用

回答

2

三個問題,引號(包含在變量的值),空間(已包含在變量的命名空間)和級聯(有在批處理文件中沒有連接符)

您已經定義名爲logFile_,在其名稱的aditional的空間(由下劃線表示)的變量,和所分配的值是文本_"File"_+_.log(如前,下劃線表示空格)

SET logFile = "%~3" + .log 
     ^^^ ^^^^ Unneeded/problematic characters 

應該是

SET "logFile=%~3.log" 

沒有aditional的空間和報價中不包含的價值,他們只是界定了分配,以防止特殊字符或aditional的空間問題,在該行的末尾

0

刪除空格圍繞=並刪除無關引號。

SET logFile=%~3.log 
echo logFileName is "%logFile%" 

echo %date% %time% got parameters "%~1" "%~2" >> "%logFile%" 

這對我很有用。