두 개의 txt 파일이 있습니다. 첫 번째 파일은 json 파일의 결과이고 두 번째 파일에는 JSON의 내용 + 다른 TXT 파일의 내용이 있어야합니다.TXT 파일 비교 및 누락 된 단어 받기
:는 database1.txt (JSON)에서
word1
word2
word3
word8
Database2.txt
word1
word5
word7
word8
Database3.txt (Database1 + 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 코드가 누락 된 단어를 찾은 것처럼 보이는 경우가 있습니다.
나를 고칠 수있는 사람이 있습니까? 아니면 더 나은 방법을 비교할 수 있습니까?
이 스크립트에 의해 라는 강력한 도구를 사용하면
으로 변경하여 해결할 수 있습니다. 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