我想将以下参数传递给脚本:
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%"
应该像上面的脚本,但不能使它工作
答案 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%"
这适合我。