我有一个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?
答案 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