快捷方式命令文件命令行参数Win7多个值

时间:2014-08-12 14:37:16

标签: windows shell command-line cmd shortcut

我知道如何通过修改目标快捷方式属性来为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

PropertieShortcut

也许您知道如何拆分“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调用

1 个答案:

答案 0 :(得分:1)

你正在遇到臭名昭着的早期变量扩展问题。您的变量将替换为块开头的值。因为在那个时候开始日和开始时间是空的,这就是你得到的 我怀疑在您从命令行进行测试时,变量已经从第一次尝试开始设置(它们保留在环境中,您可以通过set看到它。) 解决方法是将setlocal enabledelayedexpansion放在批处理文件的开头,然后使用!startday!而不是%startday%引用变量。