Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 批处理(Windows)将变量设置为第一个参数不起作用_Variables_Batch File_Cmd - Fatal编程技术网

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

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。为什么未定义变量文件?变量赋值中有不需要的空格,因此定义的变量名称中有一个空格,该空格的

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

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