2014-10-05 14 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%" 

这对我很有用。