无法通过 bat 文件比较声明为 success/failure 状态的变量
Unable to compare the variable declared as a success/failure state via bat file
我创建了一个 bat 文件来查找具有主文件中定义的文件夹列表中的子文件夹的文件夹。
脚本:
@echo off
REM SetLocal EnableDelayedExpansion
for /F "delims=" %%a in (D:\Temp\A\folder_creation\FRONT_OFFICE_SERVER.txt) do (
pause
echo %%a
(echo %%a |find /I "\" > null && set COUNTER='SUB' || set COUNTER='NO_SUB') >> abc.log
pause
SetLocal EnableDelayedExpansion
echo counter is !COUNTER!
pause
set SUB='SUB'
IF !COUNTER!=='%SUB%' (
echo %%a has a subfolder
pause
SET !COUNTER!=ABC
) ELSE (
echo %%a doesnt have a subfolder
pause
SET !COUNTER!=ABC
)
)
FRONT_OFFICE_SERVER.txt
的文件内容
ABC
DEF
ABC\DEF
ABC\GHI
TEMP
A
B\A
此处脚本 运行 循环文本文件中提到的文件夹名称并根据验证进入循环 provided.But 每次循环进入 IF 子句或 else子句但不是根据子文件夹的存在。
我的意图是 运行 如果子文件夹不存在,If 子句下的命令集,如果 sb 文件夹存在,则执行其他部分命令。
我觉得这是因为 if 验证,我缺少对所用局部变量的单引号或双引号。
有人可以帮我解决这个问题吗,因为这个小的待处理的东西从昨天开始就完成了整个工作?
这是一个显示更简单思维过程的示例脚本:
@Echo Off
For /F "Delims=" %%I In (D:\Temp\A\folder_creation\FRONT_OFFICE_SERVER.txt) Do (
If "%%~nI" Equ "%%~I" (
Echo=[%%I] No Sub - run the set of commands
) Else (
Echo=[%%~I] Sub exists - run the part commands
)
)
Pause
希望对你有所帮助,
我创建了一个 bat 文件来查找具有主文件中定义的文件夹列表中的子文件夹的文件夹。
脚本:
@echo off
REM SetLocal EnableDelayedExpansion
for /F "delims=" %%a in (D:\Temp\A\folder_creation\FRONT_OFFICE_SERVER.txt) do (
pause
echo %%a
(echo %%a |find /I "\" > null && set COUNTER='SUB' || set COUNTER='NO_SUB') >> abc.log
pause
SetLocal EnableDelayedExpansion
echo counter is !COUNTER!
pause
set SUB='SUB'
IF !COUNTER!=='%SUB%' (
echo %%a has a subfolder
pause
SET !COUNTER!=ABC
) ELSE (
echo %%a doesnt have a subfolder
pause
SET !COUNTER!=ABC
)
)
FRONT_OFFICE_SERVER.txt
的文件内容ABC
DEF
ABC\DEF
ABC\GHI
TEMP
A
B\A
此处脚本 运行 循环文本文件中提到的文件夹名称并根据验证进入循环 provided.But 每次循环进入 IF 子句或 else子句但不是根据子文件夹的存在。
我的意图是 运行 如果子文件夹不存在,If 子句下的命令集,如果 sb 文件夹存在,则执行其他部分命令。
我觉得这是因为 if 验证,我缺少对所用局部变量的单引号或双引号。
有人可以帮我解决这个问题吗,因为这个小的待处理的东西从昨天开始就完成了整个工作?
这是一个显示更简单思维过程的示例脚本:
@Echo Off
For /F "Delims=" %%I In (D:\Temp\A\folder_creation\FRONT_OFFICE_SERVER.txt) Do (
If "%%~nI" Equ "%%~I" (
Echo=[%%I] No Sub - run the set of commands
) Else (
Echo=[%%~I] Sub exists - run the part commands
)
)
Pause
希望对你有所帮助,