我想创建一个 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"
)
)