[英]findstr do not work in for command
索引文件:index.txt
1
3
5
要搜索文件:file.txt
1
2
3
4
5
6
7
8
我的代碼:
@echo off
for /f "delims=" %%a in (C:\index.txt) do (
findstr %%a C:\file.txt>nul
if %errorlevel% equ 0 echo found %%a
)
采用
if NOT errorlevel 1 echo found %%a
代替
if %errorlevel% equ 0 echo found %%a
您遇到的基本問題與delayed expansion
(請搜索SO以獲取參考)。
errorlevel
被設置為的結果findstr
,而是一個內code block
, %errorlevel%
將由的當前值替換errorlevel
,因為它是當for
支配首先遇到的塊。
then ... if errorlevel n ...
的語法表示“如果errorlevel為n 或大於則...
由於findstr
將設置errorlevel
到0
的“發現”和1
“如果發現給我”上“沒有發現”,則需要的是if not errorlevel 1
,即。 errorlevel
當前為NENORTH 1 NOR大於1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.