View previous topic :: View next topic |
Author |
Message |
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Mar 09, 2010 12:51 Post subject: Re: Добавление в поиск TC большого списка расширений файлов |
|
|
kdn wrote: | Может где-то или у кого-то есть плагины автоматизации | Представляю батник для обработки списков расширений: сортирует маски; удаляет дубликаты; делает список "в строчку";
Code: | @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
|
Если в качестве разделителя масок вы используете не пробел, а точку с запятой, то раскомментируйте две заремленные строки с ";" и закомментируйте строки с " " рядом.
Важно: копируя код через буфер обмена удалите пробелы в конце каждой строки, иначе из-за этого батник будет работать неправильно!
Last edited by Tol!k on Thu Mar 11, 2010 11:58; edited 2 times in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 09, 2010 15:02 Post subject: |
|
|
Tol!k
Даа, не удивляюсь этой Аве, мистер "МОЗГ"!)) Глядя на эти немецкие зашифровки снизу как-то нехорошо становиться.)) А батник cрабатывает великолепно! Только пишет:Неправильная команда или имя файла.
Невозможно загрузить поддержду VDM IPX/SPX Параметры: %P%N
С ";" конечно лучше - место экономит, если записывать как маску, а не поисковой шаблон.
Здорово, а то самому приходилось делать несколько замен в блокноте. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Mar 09, 2010 15:34 Post subject: |
|
|
Flasher wrote: | Неправильная команда или имя файла.
Невозможно загрузить поддержду 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" это что-то новенькое
Last edited by Tol!k on Wed Mar 10, 2010 03:49; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Mar 09, 2010 16:26 Post subject: |
|
|
Tol!k wrote: | попробуй отследить что вызывает ругань | Лог в личке. Tol!k wrote: | в висте/7 нет команды chcp | До 7-ки ещё "не дорос". Виста мне и лицензионная даром не нужна. Пока сижу на ХРюше. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Mar 11, 2010 12:01 Post subject: |
|
|
Добавил создание бэкапов файлов и проверку неудалённых пробелов в конце строк батника |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Mar 12, 2010 13:12 Post subject: |
|
|
Quote: | ... а можно чтобы батник не bak создавал, а просто добавлял к исходному файлу-списку в папку изменённый?
name.txt (исходный)
name_srt.txt (изменённый) |
Закомментируйте или удалите строку move "%~1" "%~1.bak", а следующие две строки замените на
Code: | rem "%temp%\sbs2.com" 0 "$0d$0a" ";" <"%temp%\~srt.tmp" >"%~n1_srt%~x1"
"%temp%\sbs2.com" 0 "$0d$0a" " " <"%temp%\~srt.tmp" >"%~n1_srt%~x1"
|
|
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Wed Apr 07, 2010 23:28 Post subject: |
|
|
Как таблицу преобразовать в список.
Копируем весь документ.
В Ворде Правка|Специальная вставка - Неформатированный текст (чтобы быстрее)
Выделить нужное.
Таблица - Преобразовать в таблицу. Разделитель - табулятор.
Удалить лишний столбец.
Таблица - Преобразовать в текст.
Правка - Заменить "^p" (знак абзаца) на " *" (пробел_ёжик)
Доработать немного ручками. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 23, 2010 12:58 Post subject: |
|
|
есть список вида:
jpg jpg
bmp bmp
gif gif
Tol!k
Что менять в батнике для достижения аналогичного результата? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun May 23, 2010 17:38 Post subject: |
|
|
Ничего, такая ситуация предусматривалась.
Только *. он не добавляет, придётся тебе самому.
Last edited by Tol!k on Sun May 23, 2010 17:54; edited 1 time in total |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 23, 2010 17:52 Post subject: |
|
|
Хм. Ну а для моего случая можно что-нибудь эдакое придумать? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun May 23, 2010 17:56 Post subject: |
|
|
Ну пройдись автозаменой пробела на " *."
Хотя, вставь
if not "%e%"=="%~1" (echo "*.%~1">> "%temp%\~ext.tmp"& set "e=%~1") |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 23, 2010 18:48 Post subject: |
|
|
Меняю здесь: Code: | compare
if not "%e%"=="%~1" (echo "%~1">> "%temp%\~ext.tmp"& set "e=%~1")
goto :eof | В итоге: с пробелами работает, а с ";" дубликаты не удаляются. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun May 23, 2010 19:18 Post subject: |
|
|
Во входном файле у тебя пробелы, значит при первом выборе " " или ";" нужно выбирать пробел.
Была у мну задумка передавать разделители параметрами, щаз сделаю |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun May 23, 2010 20:22 Post subject: |
|
|
Я бы его выбрал, если бы он меня устраивал. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Sun May 23, 2010 20:41 Post subject: |
|
|
Ты не понял, пробелы во входном файле нужно принять как данность. А вот на выходе ты можешь выбрать ";"
Но я уже сделал передачу разделителей параметрами, теперь в батнике ничего менять не нужно.
В твоём случае параметры: %P%N " ;" "*." |
|
Back to top |
|
|
|