簡體   English   中英

findstr不能用於命令

[英]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將設置errorlevel0的“發現”和1 “如果發現給我”上“沒有發現”,則需要的是if not errorlevel 1 ,即。 errorlevel當前為NENORTH 1 NOR大於1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM