2016-04-29 61 views
2

我試圖編寫一個從fileA.txt讀取列表的批處理文件,如果匹配不存在,則檢查fileC.txt如果匹配不存在只寫入第一個匹配行fileB.txt到fileC.txt批處理文件將findstr結果的第一個匹配僅打印到文本文件

fileA.txt例如

aaa1 
aaaa 
aaaa4 
bbb 
ccc12 

fileB.txt例如

aaa1 some text 
aaa1 blah bla 
aaa1 .r 
aaaa some info 
aaaa blah bla 
aaaa4 some name 
bbb some name to 
bbb more blah blah 
ccc12 another name 
ccc12 blah bla 

所得fileC.txt

aaa1 some text 
aaaa some info 
aaaa4 some name 
bbb some name to 
ccc12 another name 

什麼即時試圖做

for /F %%i in (C:\filecopy\fileA.txt) do (
If exist (findstr /B /C:%%i fileC.txt) (
echo %%i exists) else (
findstr /B /C:%%i fileB.txt >> fileC.txt) 
) 

但是這些代碼的心不是正確的和IM不知道如何最好地處理它

回答

1

的解決方案是在fileC.txt只是的第一場比賽存儲當fileA.txt中的每個單詞在文件B.txt中搜索時(正如您在問題標題中指出的那樣):

@echo off 
setlocal 

(for /F %%i in (fileA.txt) do (
    set "firstMatch=true" 
    for /F "delims=" %%j in ('findstr /B /C:%%i fileB.txt') do (
     if defined firstMatch (
     echo %%j 
     set "firstMatch=" 
    ) 
    ) 
)) > fileC.txt 
+0

Tku正如我想要的那樣工作:) –

相關問題