murka_anka
11-04-2012, 08:13
здравствуйте, задача такая: есть списов файлов в txt, каждый из этих файлов находится в архиве, нужно последовательно (каждый по отдельности, а не все сразу, тк имена файлов могут быть одинаковые) распаковать, обработать какой-нибудь программой, например trid.exe, вместо нее может быть любая другая, записать результаты по каждому файлу в отдельный файл, затем распакованный файл удалить.
Вот что у меня есть
rem куда распаковывыем
set spath=d:\1\rar
rem куда кладем файлы с результатами
set dpath=d:\1\trid
rem считаем строки в файле с путями к файлам
set /a j=0
for /F "tokens=*" %%j in (list.txt) do (set /a j=j+1)
rem х - номер строки и имя файла с результатами
for /l %%x in (1,1,%j%) do (
FOR /F "usebackq delims=" %%n in (list.txt) do (
winrar.exe e -n %%n %spath%|
for /r %spath% %%m in (*.*) do (
trid.exe> %dpath%\%%x.trid "%%m")|
del /q "%%m"))
cd /d %dpath%
"C:\Program Files\WinRAR\winrar.exe" a %dpath%\trid.zip
Вообщем, что у меня получается, вернее, не получается:
1) Файл не удаляется, пишет "не удается найти d:\1\rar\%m. Попытка записи в несуществующий канал"
2) Результаты обработки записываются в один файл 1.trid, не во много файлов 1-j.
(У меня вся программа в одной строке, это я здесь переосы расставила)
Извините, если сумбурно написала, но уже голова кипит)
Вот что у меня есть
rem куда распаковывыем
set spath=d:\1\rar
rem куда кладем файлы с результатами
set dpath=d:\1\trid
rem считаем строки в файле с путями к файлам
set /a j=0
for /F "tokens=*" %%j in (list.txt) do (set /a j=j+1)
rem х - номер строки и имя файла с результатами
for /l %%x in (1,1,%j%) do (
FOR /F "usebackq delims=" %%n in (list.txt) do (
winrar.exe e -n %%n %spath%|
for /r %spath% %%m in (*.*) do (
trid.exe> %dpath%\%%x.trid "%%m")|
del /q "%%m"))
cd /d %dpath%
"C:\Program Files\WinRAR\winrar.exe" a %dpath%\trid.zip
Вообщем, что у меня получается, вернее, не получается:
1) Файл не удаляется, пишет "не удается найти d:\1\rar\%m. Попытка записи в несуществующий канал"
2) Результаты обработки записываются в один файл 1.trid, не во много файлов 1-j.
(У меня вся программа в одной строке, это я здесь переосы расставила)
Извините, если сумбурно написала, но уже голова кипит)