Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Добавление в поиск TC большого списка расширений файлов
Goto page Previous  1, 2, 3, 4, 5, 6  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Mar 09, 2010 12:51    Post subject: Re: Добавление в поиск TC большого списка расширений файлов Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Mar 09, 2010 15:02    Post subject: Reply with quote

Tol!k
Даа, не удивляюсь этой Аве, мистер "МОЗГ"!)) Глядя на эти немецкие зашифровки снизу как-то нехорошо становиться.)) А батник cрабатывает великолепно! Только пишет:
    Неправильная команда или имя файла.
    Невозможно загрузить поддержду VDM IPX/SPX
Параметры: %P%N
С ";" конечно лучше - место экономит, если записывать как маску, а не поисковой шаблон.
Здорово, а то самому приходилось делать несколько замен в блокноте. Smile
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Mar 09, 2010 15:34    Post subject: Reply with quote

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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Tue Mar 09, 2010 16:26    Post subject: Reply with quote

Tol!k wrote:
попробуй отследить что вызывает ругань
Лог в личке.
Tol!k wrote:
в висте/7 нет команды chcp
До 7-ки ещё "не дорос". Виста мне и лицензионная даром не нужна. Very Happy Пока сижу на ХРюше.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Mar 11, 2010 12:01    Post subject: Reply with quote

Добавил создание бэкапов файлов и проверку неудалённых пробелов в конце строк батника
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Fri Mar 12, 2010 13:12    Post subject: Reply with quote

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
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Wed Apr 07, 2010 23:28    Post subject: Reply with quote

Как таблицу преобразовать в список.
Копируем весь документ.
В Ворде Правка|Специальная вставка - Неформатированный текст (чтобы быстрее)
Выделить нужное.
Таблица - Преобразовать в таблицу. Разделитель - табулятор.
Удалить лишний столбец.
Таблица - Преобразовать в текст.
Правка - Заменить "^p" (знак абзаца) на " *" (пробел_ёжик)
Доработать немного ручками.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun May 23, 2010 12:58    Post subject: Reply with quote

есть список вида:
jpg jpg
bmp bmp
gif gif

Tol!k
Что менять в батнике для достижения аналогичного результата?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun May 23, 2010 17:38    Post subject: Reply with quote

Ничего, такая ситуация предусматривалась.
Только *. он не добавляет, придётся тебе самому.


Last edited by Tol!k on Sun May 23, 2010 17:54; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun May 23, 2010 17:52    Post subject: Reply with quote

Tol!k wrote:
Ничего.
Хм. Ну а для моего случая можно что-нибудь эдакое придумать?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun May 23, 2010 17:56    Post subject: Reply with quote

Ну пройдись автозаменой пробела на " *."

Хотя, вставь
if not "%e%"=="%~1" (echo "*.%~1">> "%temp%\~ext.tmp"& set "e=%~1")
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun May 23, 2010 18:48    Post subject: Reply with quote

Меняю здесь:
Code:
compare
if not "%e%"=="%~1" (echo "%~1">> "%temp%\~ext.tmp"& set "e=%~1")
goto :eof
В итоге: с пробелами работает, а с ";" дубликаты не удаляются.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun May 23, 2010 19:18    Post subject: Reply with quote

Во входном файле у тебя пробелы, значит при первом выборе " " или ";" нужно выбирать пробел.
Была у мну задумка передавать разделители параметрами, щаз сделаю
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun May 23, 2010 20:22    Post subject: Reply with quote

Я бы его выбрал, если бы он меня устраивал. Wink
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun May 23, 2010 20:41    Post subject: Reply with quote

Ты не понял, пробелы во входном файле нужно принять как данность. А вот на выходе ты можешь выбрать ";"

Но я уже сделал передачу разделителей параметрами, теперь в батнике ничего менять не нужно.
В твоём случае параметры: %P%N " ;" "*."
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4, 5, 6  Next
Page 2 of 6

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group