批量(Windows)将变量设置为第一个参数不起作用

时间:2016-04-25 12:01:48

标签: variables batch-file cmd

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

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

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

2 个答案:

答案 0 :(得分:5)

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

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

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

set "FILE=%~1"

答案 1 :(得分:0)

您可以尝试这样:

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