我知道如何通过修改目标快捷方式属性来为cmd文件的快捷方式设置命令行参数。
"C:\test\cT.cmd" -logpk cur -lp c:\xxx\testlogs
但是我如何将多个参数值提供给参数点
C:\test\cT.cmd -logpk cur -lp c:\xxx\testlogs -s 22.07.2014 14:30:00
上面的内容可以作为cmd命令使用,但是如果我将它添加到快捷方式目标中,则“-s”选项不会被cmd正确填充。
"C:\test\cT.cmd" -logpk cur -lp c:\xxx\testlogs -s 22.07.2014 14:30:00
也许您知道如何拆分“morenode参数”,以便它们也可用于快捷方式。
最好的问候
编辑:
if "%argument%" == "-s" (
set startDay=%argumentValueOne%
set startTime=%argumentValueTwo%
if "%argumentValueOne%" == "a" set startDay=""
if "%argumentValueTwo%" == "A" set startTime=""
set startDate=-s %startDay% %startTime%
echo startDate %startDate%
shift
shift
shift
goto validate
)
EDIT2:
C:\test\>
if "-s" == "-s" (
set startDay=22.07.2014
set startTime=14:30:00
if "22.07.2014" == "a" set startDay=""
if "14:30:00" == "A" set startTime=""
set startDate=-s
echo startDate
shift
shift
shift
goto validate
)
-s -logpk cur -vendor -lp c:\xxx\testlogs
如果从cmd快捷方式调用
EDIT3:
C:\test\>
if "-s" == "-s" (
set startDay=22.07.2014
set startTime=14:30:00
if "22.07.2014" == "a" set startDay=""
if "14:30:00" == "A" set startTime=""
set startDate=-s 22.07.2014 14:30:00
echo startDate -s 22.07.2014 14:30:00
shift
shift
shift
goto validate
)
-s 22.07.2014 14:30:00 -logpk cur -vendor -lp c:\xxx\testlogs
如果从已打开的cmd调用
答案 0 :(得分:1)
你正在遇到臭名昭着的早期变量扩展问题。您的变量将替换为块开头的值。因为在那个时候开始日和开始时间是空的,这就是你得到的
我怀疑在您从命令行进行测试时,变量已经从第一次尝试开始设置(它们保留在环境中,您可以通过set
看到它。)
解决方法是将setlocal enabledelayedexpansion
放在批处理文件的开头,然后使用!startday!
而不是%startday%
引用变量。