Для сбора только первых 6 символов каждой строки мы можем использовать несколько циклов for
вместе с syntax-substring . Мы можем просто сохранить эти измененные данные в новых временных файлах для последующего сравнения с findstr
.
CompareFirst6Chars.bat:
@echo off
@setlocal enabledelayedexpansion
Rem | Configuration
Set "CompaireFile1=1.txt"
Set "CompaireFile2=2.txt"
Set "ResultFile=result.txt
Rem | Loop For Each Item
for %%A in (!CompaireFile1! !CompaireFile2!) do (
Rem | Grab Only First 6 Characters From Files, Format In Modified
for /f "Tokens=*" %%B in (%%A) do (
Rem | Save & Modify Strings
Set "Modified=%%B"
Set "Modified=!Modified:~0,6!"
Rem | Save To File
Echo !Modified!>> %%A.temp
)
)
Rem | Compare & Extract Results
findstr /ixg:!CompaireFile1!.temp !CompaireFile2!.temp > !ResultFile!
Rem | Remove Temp Files
Del "!CompaireFile1!.temp" "!CompaireFile2!.temp"
goto :EOF
Это даст нам следующий результат:
500006
500006
500007
500008
500009
500010
500012
500014
500015
500016
500028
500129
500134
500142
500144
Альтернативное решение - полностью удалить .mockup
из строки. Для этого процесс очень симуляционный, но вместо синтаксис-подстрока мы используем синтаксис-замена . Это позволит нам заменить все .mockup
на ничто.
RemoveMockupCompareFiles.bat:
@echo off
@setlocal enabledelayedexpansion
Rem | Configuration
Set "CompaireFile1=1.txt"
Set "CompaireFile2=2.txt"
Set "ResultFile=result.txt
Rem | Loop For Each Item
for %%A in (!CompaireFile1! !CompaireFile2!) do (
Rem | Grab Only First 6 Characters From Files, Format In Modified
for /f "Tokens=*" %%B in (%%A) do (
Rem | Save & Modify Strings
Set "Modified=%%B"
Set "Modified=!Modified:.mockup=!"
Rem | Save To File
Echo !Modified!>> %%A.temp
)
)
Rem | Compare & Extract Results
findstr /ixg:!CompaireFile1!.temp !CompaireFile2!.temp > !ResultFile!
Rem | Remove Temp Files
Del "!CompaireFile1!.temp" "!CompaireFile2!.temp"
goto :EOF
Это даст нам вывод следующего:
500006011000.S3S
500006011000.S3S
500007011000.S3S
500008011000.S3S
500009011000.S3S
500010011000.S3S
500012011000.S3S
500014011000.S3S
500015011800.S3S
500016011000.S3S
500028011201.S3S
500129010200.S3S
500134010100.S3S
500142010100.S3S
500144010100.S3S
Для получения справки по любой из команд выполните следующее:
call /?
set /?
for /?
if /?
find /?
- И так далее.