Batch file 如何检查批传递的参数是否存在?
如何修改以下示例代码,以检查启动批处理文件时是否给出了输入参数 因为检查Batch file 如何检查批传递的参数是否存在?,batch-file,Batch File,如何修改以下示例代码,以检查启动批处理文件时是否给出了输入参数 因为检查如果不是%MYDIR%==test失败,如果没有提供参数,则终止批处理过程 SET MYDIR=%1 IF {no parameter given} OR NOT %MYDIR%==test ( ECHO dir is not "test" ) 字符串不能完全为空,解决此约束的一种常见方法是将字符串用引号括起来,如下所示 ... OR NOT "%MYDIR%"=="test" 或者您可以添加一些没有意义的内容而
如果不是%MYDIR%==test
失败,如果没有提供参数,则终止批处理过程
SET MYDIR=%1
IF {no parameter given} OR NOT %MYDIR%==test (
ECHO dir is not "test"
)
字符串不能完全为空,解决此约束的一种常见方法是将字符串用引号括起来,如下所示
... OR NOT "%MYDIR%"=="test"
或者您可以添加一些没有意义的内容而不包含字符串(丑陋!)
字符串不能完全为空,解决此约束的一种常见方法是将字符串用引号括起来,如下所示
... OR NOT "%MYDIR%"=="test"
或者您可以添加一些没有意义的内容而不包含字符串(丑陋!)
在处理传递的参数时,处理所有可能性是非常困难的。但以下策略在大多数“普通”情况下有效
if "%~1" equ "" echo arg 1 was not passed
使用
~
修饰符很重要,因为您无法知道传递的参数是否已包含在引号中。如果像“this&that”
这样的参数被传递,并且您在添加自己的引号之前没有先删除引号,那么您将得到If“this&that”eq
。&
不再被引用,您的命令也不再正确解析。在处理传递的参数时,处理所有可能的情况是非常困难的。但以下策略在大多数“普通”情况下有效
if "%~1" equ "" echo arg 1 was not passed
使用~
修饰符很重要,因为您无法知道传递的参数是否已包含在引号中。如果像“this&that”
这样的参数被传递,并且您在添加自己的引号之前没有先删除引号,那么您将得到If“this&that”eq
。&
不再被引用,您的命令也不再正确解析