2013-03-20 114 views
0

如何将for循环中的for循环放置在findstr中?将2 for循环放置在另一个for findtr循环内for

我所拥有的是for循环内的一个findstr里面的循环。我正确地做括号吗?

我想在* .map文件里面找到var1(%% A),它将在行尾。如果找到,我想抓取该行的第二项(%% B),并将该行称为var2和第四项(%% C),并将其称为var3。然后回显所有三个变量。

@echo off 


SETLOCAL ENABLEDELAYEDEXPANSION 

for /f "delims=" %%A in (Marks.txt) do (

set var1=!var1!%%A 


findstr /e "!var1!" "*.map" 

if not errorlevel 1 (

for /f "tokens=2" delims=%=%,." %%B do (
set var2=!var2!%%B 
) 

& 

for /f "tokens=4" delims=%=%,." %%C do (
set var3=!var3!%%C 
) 

) 

) 



echo !var1! 
echo !var2! 
echo !var3! 

choice /C X /T 8 /D X > nul 

我收到一个错误,窗口关闭,所以我看不懂它。我尝试使用计时器和暂停,但无法保持cmd提示符处于打开状态。

+2

阅读'for'循环。你有一些额外的'''',没有'in'指定 – 2013-03-20 22:56:05

+0

要解决问题,不要双击你的.bat文件(因为如果有错误,它会关闭窗口,正如你所看到的)。打开命令提示符并从那里运行批处理文件 – 2013-03-20 22:57:25

+0

ahhh,我现在看到了,如果我还有其他问题,请回复。谢谢! – 2013-03-20 22:57:31

回答

0

我修复了我的问题。我有额外的引号,并且缺少(....)部分。