Variables 批处理(Windows)将变量设置为第一个参数不起作用
我有一个batchscript mybatch,其中我尝试将第一个用户参数存储在名为FILE的变量中Variables 批处理(Windows)将变量设置为第一个参数不起作用,variables,batch-file,cmd,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 ) 如果我通过mybatchtest1执行批处理,我得到的总是未定义的test1。为什么未定义变量文件?变量赋值中有不需要的空格,因此定义的变量名称中有一个空格,该空格的
set FILE = %1
if defined FILE (
echo defined
echo do something with %1
) else (
echo not defined %1
)
如果我通过mybatchtest1执行批处理,我得到的总是未定义的test1。为什么未定义变量文件?变量赋值中有不需要的空格,因此定义的变量名称中有一个空格,该空格的值始终以空格开头。IF语句正在检查不带空格的变量是否存在 看 我建议您的第一行应该是:
set "FILE=%~1"
变量赋值中有不需要的空格,因此定义了一个变量,其名称中的空格值始终以空格开头。IF语句正在检查不带空格的变量是否存在 看 我建议您的第一行应该是:
set "FILE=%~1"
您可以这样尝试:
@echo off
set "FILE=%~1"
if Exist "%FILE%" (
echo.
echo "%FILE%" Exist
echo do something with "%FILE%"
) else (
echo "%FILE%" is not defined
)
Pause
您可以这样尝试:
@echo off
set "FILE=%~1"
if Exist "%FILE%" (
echo.
echo "%FILE%" Exist
echo do something with "%FILE%"
) else (
echo "%FILE%" is not defined
)
Pause