如何在for循环中实现多个findstr命令?

问题描述 投票:0回答:0

我想创建一个 for 循环来检查特定文件是否存在,如果存在,则检查每个文件中是否存在特定关键字。为了使

findstr
正常工作,我必须更改目标文件的编码。如果至少一个文件不包含它的关键字,我想将一个变量设置为 0。如果所有文件都包含它们的关键字,我想将一个变量设置为 1.

我已经完成了第一部分,但整个

findstr
部分都被跳过了。如何按照我希望的方式将
findstr
实现到我的 for 循环中?

@echo off

set "var="

call :script

echo var: %var%
pause
exit

:script
for %%g in ("*.txt") do if exist "%%g" (
    if not exist "Test1.txt" set "var=0" & exit /b
    if not exist "Test2.txt" set "var=0" & exit /b
    if not exist "Test3.txt" set "var=0" & exit /b
) else (
    powershell -command "(gc -raw Test1.txt) | sc -encoding ASCII Text1.txt; (gc -raw Test2.txt) | sc -encoding ASCII Text2.txt; (gc -raw Test3.txt) | sc -encoding ASCII Text3.txt"
    findstr /b /c:"Fox" "Test1.txt"
    findstr /b /c:"Dog" "Test2.txt"
    findstr /b /c:"Cat" "Test3.txt"
    powershell -command "(gc -raw Test1.txt) | sc -encoding Unicode Text1.txt; (gc -raw Test2.txt) | sc -encoding Unicode Text2.txt; (gc -raw Test3.txt) | sc -encoding Unicode Text3.txt"
    if errorlevel 0 if not errorlevel 1 (
        set "var=1"
    ) else (
        set "var=0"
    )
)
for-loop batch-file error-handling cmd findstr
© www.soinside.com 2019 - 2024. All rights reserved.