我有2個txt文件,第一個是json文件的結果,第二個文件必須包含JSON的內容+其他TXT文件的內容。比較TXT文件並找不到文字
database1.txt
word1
word2
word3
word8
Database2.txt(從JSON)
word1
word5
word7
word8
Database3.txt(數據庫1 +的Database2)
Word1
Word2
Word3
Word5
Word7
Word8
這裏是我的代碼:
@ECHO OFF
setlocal enabledelayedexpansion
IF EXIST "%LOCALAPPDATA%\xxx\xxx\database.json". (
for /f "delims=" %%a in ('type "%LOCALAPPDATA%\xxx\xxx\database.json"') do for %%b in (%%a) do (
ECHO %%b >>json.tmp
)
for /f "tokens=* skip=1 delims= " %%a in (json.tmp) do (
call :sub1 %%a
>> Json_cl.txt echo.!S!
)
set row=
for /F "delims=" %%j in (Json_cl.txt) do (
if defined row echo.!row!>>Password_JD.txt
set row=%%j
)
findstr /V /g:"Password_list.txt" "Password_JD.txt">1.out
type Password_list.txt 1.out>Updated_PW.txt
del Json_cl.txt
del json.tmp
del Password_JD.txt
del 1.out
goto :eof
:sub1
set S=%*
set S=!S:"=!
goto :eof
)
該代碼運行良好,但有時看起來像是如果FINDSTR dosnt發現丟失的單詞。
有人可以幫我解決它或可以告訴我一個更好的方法來比較嗎?
謝謝
來解決此問題,因爲SORT不區分大小寫,所以無法可靠地工作。 SORT可以產生以下序列:'A a'和UNIQ.BAT將保留所有三個值,而您只需要'A a'。我的[JSORT.BAT](http://www.dostips.com/forum/viewtopic.php?f=3&t=5595)可以用來解決區分大小寫問題,但我認爲OP可能仍然存在問題某些線上有額外的空間。 – dbenham
@dbenham它確實解決了這個問題。 「糟糕的問題往往導致」答案可能無法正常工作「。 – foxidrive
如果你打算這個問題的字面意思,那麼這當然不能解決問題,因爲文本輸入都是小寫字母,最終輸出是混合大小寫。但我不認爲這是OP的意圖。此外,代碼涉及密碼的事實意味着該案例可能很重要,因爲大多數密碼都區分大小寫。但是同意,這個問題可以寫得更好。 – dbenham