【问题标题】:simple If-Statemenet - batch script简单的 If-Statemenet - 批处理脚本
【发布时间】:2014-02-21 20:14:45
【问题描述】:

我是批处理脚本的新手,我必须应用一个简单的 if 语句。 当然,用户给出脚本的名称(c5)和一个参数。如果第一个参数是“John”,则打印“Welcome John”,否则打印“你是谁?”。

这是我的代码:

@echo off
set msg1 = Welcome John
set msg2 = Who are you%?
if %1 == "John" echo %msg1% 
if not %1 == "John" echo %msg2%
pause

当我键入不带参数的“c5”时,显示:“此时无法对“echo”进行语法处理。” (原文:"echo" kann syntaktisch an dieser Stelle nicht verarbeitet werden。" 如果我使用任何参数(c5 Johny 或 c5 kostas),ECHO 将关闭。

如果有任何帮助,我将不胜感激

【问题讨论】:

    标签: batch-file if-statement cmd


    【解决方案1】:

    空格和引号在dos批处理中很有趣,我得到了这个工作。

    @echo off
    set msg1=Welcome John
    set msg2=Who are you?
    if %1 == John echo %msg1%
    if not %1 == John echo %msg2%
    pause
    

    【讨论】:

    • 现在一切正常,空格和引号引起了问题。非常感谢!!
    【解决方案2】:

    这显示了一种使用/i 测试JohnjohnjoHN 等而不考虑大小写的方法,还显示了另一种安排回显的方法。

    这也将接受%1 中的two words,并且如果%1 为空也不会失败。

    @echo off
    set msg1=Welcome John
    set msg2=Who are you?
    if /i "%~1"=="John" (echo %msg1%) else (echo %msg2%)
    pause
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-26
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多