代码之家  ›  专栏  ›  技术社区  ›  Manish Kumar

窗口批处理文件错误:(此时是意外的[重复]

  •  1
  • Manish Kumar  · 技术社区  · 6 年前

    这个问题已经有了答案:

    这是我的run.bat文件:

    set var1 = %1
    IF %var1%=="Yes" (
        Echo deleting filename.txt
     ) ELSE ( 
        Echo The file was not found.
     )
    

    我运行它的方式是:run.bat-h,我得到这个错误:

    C:\Users\admin\Desktop\test>run.bat -h
    
    C:\Users\admin\Desktop\test>set var1 = -h
    ( was unexpected at this time.
    
    C:\Users\admin\Desktop\test>IF =="Yes" (
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Gerhard    6 年前

    您运行它时没有使用%1参数。

    在命令行运行中:

    run.bat something
    

    而不仅仅是

    run.bat
    

    另外,为了避免这种情况,您必须使用%var1%的引号才能 IF 正常工作:

    set "var1=%1"
    IF "%var1%"=="Yes" (
        Echo deleting filename.txt
     ) ELSE ( 
        Echo The file was not found.
     )
    

    然后你可以不用争论就运行它,它也不会抱怨。

        2
  •  1
  •   Gerhard    6 年前

    根据我的评论,您需要将一个值传递给脚本,以便 %1 可以使用它。同时在变量集周围加双引号,最好检查是否传递了值:

    @echo off
    set "var1=%1"
    if not defined var1 echo you did not pass a value. usage "batch.cmd parameter" & pause & exit
    if /I "%var1%"=="Yes" (
       echo deleting filename.txt
     ) else ( 
       echo The file was not found.
    )