【问题标题】:Batch (Windows) set variable to first argument doesn't work批量(Windows)将变量设置为第一个参数不起作用
【发布时间】:2016-04-25 12:01:47
【问题描述】:

我有一个批处理脚本 mybatch,我尝试将第一个用户参数存储在一个名为 FILE 的变量中

set FILE = %1 
if defined FILE (
  echo defined
  echo do something with %1
  ) else (
   echo not defined %1 
  )

如果我通过 mybatch test1 执行我的批处理,我总是得到未定义的 test1。为什么没有定义变量 FILE?

【问题讨论】:

    标签: variables batch-file cmd


    【解决方案1】:

    您的变量赋值中有不需要的空格,因此您定义了一个名称中带有空格的变量,该变量始终具有以空格开头的值。您的 IF 语句正在检查是否存在不带空格的变量。

    Declaring and using a variable in Windows batch file (.BAT)

    我建议你的第一行应该是:

    set "FILE=%~1"
    

    【讨论】:

      【解决方案2】:

      你可以这样试试:

      @echo off
      set "FILE=%~1" 
      if Exist "%FILE%" (
          echo.
          echo "%FILE%" Exist
          echo do something with "%FILE%"
        ) else (
         echo "%FILE%" is not defined 
      )
      Pause
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-04
        • 1970-01-01
        • 1970-01-01
        • 2016-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多