我需要一个输出来检查记事本中输入的数据是否有效或无效。如果组名包含字符串" APP_FRA"。
,则该组名将被视为有效需要输出:
无效 - DVA_UA_ZETAFAXFAXCLIENT_2014_01-T000
有效 - APP_FRA_WFL_PEL_CIM_DK_ICG_SEPA
有效 - APP_FRA_WFL_PEL_CIM_NO_ICG_SEPA
无效 - DVA_UA_THOMSNONESMRT_57_00-T000
无效 - XSP_XA_LIBREOFFICECFG_50_00
==========================================
这就是我的所作所为:
@echo off
SETLOCAL DISABLEDELAYEDEXPANSION
for /F %%i in (File.txt) do (
set "f1=%%i"
if "%f1%"=="%f1:APP_FRA=%" (
echo Valid - %%i
) else (
echo Invalid - %%i
))
==========================================
我总是得到这个输出:
无效 - DVA_UA_ZETAFAXFAXCLIENT_2014_01-T000
无效 - APP_FRA_WFL_PEL_CIM_DK_ICG_SEPA
无效 - APP_FRA_WFL_PEL_CIM_NO_ICG_SEPA
无效 - DVA_UA_THOMSNONESMRT_57_00-T000
无效 - XSP_XA_LIBREOFFICECFG_50_00
感谢您提供的任何帮助。
答案 0 :(得分:0)
由于您在for
循环内创建变量,实际上您希望启用延迟扩展,然后对变量使用!variable!
命名约定在循环内创建并与之交互。
此外,您当前的逻辑表明,如果字符串不包含字符串APP_FRA
,则该字符串被视为有效,这与您要求的字符串相反。
@echo off
setlocal enabledelayedexpansion
for /F %%i in (File.txt) do (
set "f1=%%i"
if not "!f1!"=="!f1:APP_FRA=!" (
echo Valid - %%i
) else (
echo Invalid - %%i
)
)