batch file – 使用variables

@echo off set filename = cd GWConfig_TDS-mtpe3003 set filename = VCU17_CCU6\applications\VCU17APP GOTO CHECKFILE :CHECKFILE echo reached IF EXIST %filename% ( echo exists ) ELSE ( echo Doesnot exist ) 

/////////////////////////////////////////////////

这里输出显示:

 reached 

不回应“存在”或“不存在”

使用variables“filename”有什么问题吗?

也,

 @echo off set filename = cd GWConfig_TDS-mtpe3003 set filename = VCU17_CCU6\applications\VCU17APP GOTO CHECKFILE :CHECKFILE echo reached IF EXIST VCU17_CCU6\applications\VCU17APP ( echo exists ) ELSE ( echo Doesnot exist ) 

给出输出:

 reached exists. 

这里有两个问题。 一个是变量名后面的空格:

 SET filename = whatever 

应该

 SET filename=whatever 

(或者你以后可以使用%filename % ,但是这太可怕了:)

第二个问题是没有任何引号,如果%filename%为空,你的“IF”测试将无法正常工作。 引用它:

 IF EXIST "%filename%" ( echo exists ) ELSE ( echo Doesnot exist ) 

我现在没有时间适当地重新创建,但是我可以发现一些潜在的问题:

  • 你有没有尝试删除set =中的空格:

     set filename=VCU17_CCU6\applications\VCU17APP 

    否则你可能会有一个单一的空间领导你的文件名

  • 您可能想尝试引用%filename%的使用:

     IF EXIST "%filename%" ( ...