我想检查count
中是否存在mycountry
,然后根据进行一些操作。
我的代码段:
rem @ECHO OFF
cls
SET FILE="mycountry"
如果为true,我要运行3条语句;如果为false,我要运行3条其他语句。
我尝试过这种组合:
Echo.%FILE% | findstr /C:"count">nul && (Echo.TRUE) || (Echo.FALSE)
但是,如果条件成立,如何编写多条语句? 我不想使用任何标志变量。
以下代码段无效。
Echo.%FILE% | findstr /C:"count">nul &&
(
Echo.TRUE
echo "ran correct."
)
|| (Echo.FALSE)
答案 0 :(得分:3)
您可以将%errorlevel% 值与if / else结合使用。
请参见下面的示例:
REM @echo off
cls
SET FILE="mycountry"
SET STR="TEST"
findstr %STR% %FILE% >nul
if %errorlevel% equ 1 (
goto searchError
) else (
goto searchSucces
)
:searchSucces
echo String %STR% found in file %FILE%
pause
exit
:searchError
echo String %STR% not found in file %FILE%
pause
exit
答案 1 :(得分:3)
您的代码(集成到批处理文件中)似乎可以正常工作:
@Echo Off
Set "FILE="
Set /P "FILE=Enter String: "
If Not Defined FILE Exit /B
Echo.%FILE% | findstr /C:"count">nul && (Echo.TRUE) || (Echo.FALSE)
Pause
此外,以下两种方法似乎都能按预期工作:
使用Echo
和FindStr
(如您的代码一样):
@Echo Off
Set "FILE="
Set /P "FILE=Enter String: "
Echo=%FILE%|FindStr /IC:"count">Nul 2>&1&&(Echo TRUE
Echo Ran correct.
Timeout 3 /NoBreak>Nul
Echo Still running!)||Echo FALSE
Pause
使用变量替换:
@Echo Off
Set "FILE="
Set /P "FILE=Enter String: "
If /I "%FILE:count=%"=="%FILE%" (Echo FALSE) Else (Echo TRUE
Echo Ran correct.
Timeout 3 /NoBreak>Nul
Echo Still running!)
Pause
如果以上示例对您不起作用,则应编辑问题,以包括在实际场景中使用的实际代码和字符串。我们无法解决无法看到的问题,特别是如果您没有完全解释问题,(snippet is not working
仅是陈述,不是解释)。