CMD如何将参数传递给脚本并保存到其中一个参数的文件名

时间:2014-10-05 08:16:19

标签: windows command-line cmd dos

我想将以下参数传递给脚本:

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

第3个参数应添加扩展名.log

在此示例中,它应为File.log

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

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

应该像上面的脚本,但不能使它工作

2 个答案:

答案 0 :(得分:2)

三个问题,引号(包含在变量的值中),空格(在变量名称中包含空格)和连接(批处理文件中没有连接运算符)

您已定义了一个名为logFile_的变量,其名称中包含一个aditional空格(由下划线表示),指定的值为文字_"File"_+_.log(如前所述,下划线表示空格)< / p>

该行

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

应该是

SET "logFile=%~3.log"

没有附加空格和引号不包含在值中,它们只是分隔分配以防止在行尾添加特殊字符或附加空格的问题

答案 1 :(得分:0)

删除=周围的空格并删除无关的引号。

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

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

这适合我。