2015-03-31 104 views
0

我需要創建一個批處理文件,將執行以下操作:我有2個文本文件沒有標題,我需要在一個特定的列中重複比較。批處理文件比較沒有標題的文本文件重複

文件1的樣子:

34551897  455684   2170865488 
34668571  455674   2165586244 
34156474  456178   2156189465 
34156184  428516   2153185687 

文件2周的模樣:

3415647   458566   2183154897 
3515647   168594   2156984161 
3513157   412348   2156748416 
3581354   154613   2156789131 

我需要在第二列從文件比較1到文件2重複,如果有重複的,返回一個零。否則,返回1.

文本文件位於同一臺計算機上,但位於不同的文件夾中。

任何幫助將不勝感激。提前致謝。

+0

就幾個問題,澄清一些事情(我有點慢,你看到的)...是否重複需要在準確這兩個文件的第二列中的相同位置?當你說'返回一個零。否則,返回一個1.'你的意思是在命令提示符窗口中輸出一個'1'還是'0'?或者只是確認重複是否存在? – 2015-03-31 21:32:33

+0

[help/on-topic]:_Questions尋求作業幫助必須包括你迄今爲解決問題所做的工作的總結,並描述你正在解決的難題._提示:請注意到[Windows CMD命令行的AZ索引](http://ss64.com/nt/)中的「ECHO」,「SET」,「FOR/F」,「IF」和「EXIT」命令。回到這裏並且[編輯]你的問題,以尋求更多幫助以解決可能的困難。 – JosefZ 2015-03-31 22:09:31

+0

@JosefZ我已經注意到這個社區提出了很多關於幫助的問題,提交者指定了什麼是必需的,但是沒有證據表明這樣做,或者甚至是他們可能考慮的潛在途徑。我只是假設提問者要求答案,以便他們可以反向學習......或者按照比較的方式學習......就像有人說......不管我從這些問題中受益,因爲我喜歡挑戰並喜歡找到解決方案,但是這打破了真正的目的;提問者實際上也從我的努力中學到了東西,而不僅僅是方便地使用它作爲達到目的的手段。 – 2015-04-01 00:11:11

回答

0

這可能會幫助,如果匹配的字符串的位置是無關緊要的:

@echo off 
setlocal enabledelayedexpansion 
set count=0 

for /f "usebackq tokens=2 delims=TAB " %%i in ("C:\TEST\test columns 1.txt") do (
echo %%i 
)>>C:\TEST\temp.txt 

for /f "usebackq tokens=2 delims=TAB " %%i in ("C:\TEST\test columns 2.txt") do (
findstr /c:"%%i" "C:\TEST\temp.txt" 
if !errorlevel!==0 set /a count+=1 
) 
echo !count! match(es) 
pause 
del /q "C:\TEST\temp.txt" 

您將需要與您相關的那些替換路徑。此外,你還可以更有效地做到這一點通過嵌套for條件:

@echo off 
setlocal enabledelayedexpansion 
set count=0 

for /f "usebackq tokens=2 delims=TAB " %%i in ("C:\TEST\test columns 1.txt") do (
    for /f "usebackq tokens=2 delims=TAB " %%j in ("C:\TEST\test columns 2.txt") do ( 
    if %%i==%%j set /a count+=1 
    ) 
) 
echo !count! match(es) 
pause 
+0

如果我想用一個0 return退出,如果計數大於0,或出口用1,如果計數= 0它看起來是這樣的: 回聲%計%> 0 退出0 echo%count%== 0 exit 1 – Brandon 2015-04-02 14:42:46

+0

加入一個'if'語句,批量使用'errorlevels'參見[exit](http://ss64.com/nt/exit.html),所以你需要使用'/ b' ...並且如果您想要根據第一個終止方式運行第二個批處理,您可能需要[重定向](http://ss64.com/nt/syntax-redirection.html)命令。祝你好運! – 2015-04-02 15:54:09

+0

再次感謝@Chris – Brandon 2015-04-02 17:32:37