@echo off &chcp 1251 >nul &setlocal enableextensions
rem Важно: копируя код через буфер обмена удалите пробелы в конце каждой строки
rem Если в качестве разделителя масок вы используете не пробел, а точку с запятой,
rem то раскомментируйте две заремленные строки с ";" и закомментируйте строки с " " рядом.
if "%~1"=="" (echo Use: srt_.cmd duplicates.txt &pause >nul &exit /b)
call :create "%temp%\sbs2.com"
rem "%temp%\sbs2.com" 0 ";" "$0d$0a" <"%~f1" >"%temp%\~ext.tmp"
"%temp%\sbs2.com" 0 " " "$0d$0a" <"%~f1" >"%temp%\~ext.tmp"
sort "%temp%\~ext.tmp" /o "%temp%\~srt.tmp" &del "%temp%\~ext.tmp" /q
set "e="
for /f "usebackq delims=" %%e in ("%temp%\~srt.tmp") do call :compare "%%~e"
del "%temp%\~srt.tmp" /q
"%temp%\sbs2.com" 0 "$22" "" <"%temp%\~ext.tmp" >"%temp%\~srt.tmp"
move "%~1" "%~1.bak"
rem "%temp%\sbs2.com" 0 "$0d$0a" ";" <"%temp%\~srt.tmp" >"%~1"
"%temp%\sbs2.com" 0 "$0d$0a" " " <"%temp%\~srt.tmp" >"%~1"
del "%temp%\~ext.tmp" /q &del "%temp%\~srt.tmp" /q &exit /b
:compare
if not "%e%"=="%~1" (echo "%~1">> "%temp%\~ext.tmp"& set "e=%~1")
goto :eof
:create the assembler program, by Herbert Kleebauer
if "%~z1"=="659" goto :eof
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> "%~1"
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> "%~1"
echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> "%~1"
echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> "%~1"
echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> "%~1"
echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> "%~1"
echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> "%~1"
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> "%~1"
echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> "%~1"
echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> "%~1"
echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> "%~1"
if not "%~z1"=="659" (
echo Удалите пробелы в конце каждой строки файла "%~nx0"
del "%~1" /q &pause >nul &exit)
goto :eof
Если в качестве разделителя масок вы используете не пробел, а точку с запятой, то раскомментируйте две заремленные строки с ";" и закомментируйте строки с " " рядом.
Важно: копируя код через буфер обмена удалите пробелы в конце каждой строки, иначе из-за этого батник будет работать неправильно!
Последний раз редактировалось Tol!k Чт мар 11, 2010 10:58, всего редактировалось 2 раза.
Tol!k
Даа, не удивляюсь этой Аве, мистер "МОЗГ"!)) Глядя на эти немецкие зашифровки снизу как-то нехорошо становиться.)) А батник cрабатывает великолепно! Только пишет:
Неправильная команда или имя файла.
Невозможно загрузить поддержду VDM IPX/SPX
Параметры: %P%N
С ";" конечно лучше - место экономит, если записывать как маску, а не поисковой шаблон.
Здорово, а то самому приходилось делать несколько замен в блокноте.
Flasher писал(а):Неправильная команда или имя файла.
Невозможно загрузить поддержду VDM IPX/SPX
В начале батника смени @echo off на @echo on и попробуй отследить что вызывает ругань, запустив cmd.exe /k srt_.cmd duplicates.txt
или cmd.exe /c srt_.cmd duplicates.txt > _log.txt 2>&1
Здесь уже писали, что в висте/7 нет команды chcp, но "VDM IPX/SPX" это что-то новенькое
Последний раз редактировалось Tol!k Ср мар 10, 2010 02:49, всего редактировалось 1 раз.
Во входном файле у тебя пробелы, значит при первом выборе " " или ";" нужно выбирать пробел. Была у мну задумка передавать разделители параметрами, щаз сделаю