CMD/BAT - [решено] Обработка получаемых переменных из текстового файла

Ответить
 • Просмотры: 1
Аватара пользователя
alexxx2011

CMD/BAT - [решено] Обработка получаемых переменных из текстового файла

Сообщение alexxx2011 »

Задача такая: Извлечь из текстового файла названия архивов, которые там записаны в столбик, а потом последовательно их распаковать.

Архивов намного больше, но извлекать надо именно те, названия которых есть в файле.



Есть примерно такой вот скрипт:





Код:

Код: Выделить всё

<allfiles.txt (for /f "tokens=1* delims=[]" %%a in ('find /n /v ""') do set "s%%a=%%b")
call :un %s1%
call :un %s2%
call :un %s3%
call :un %s4%
call :un %s5%
call :un %s6%
call :un %s7%
call :un %s8%
call :un %s9%
pause
exit
:un
"7z.exe" x -aoa -tzip %~dp0resources\%1.zip -o%~dp0resources\%1
exit /b

Количество строк извлекаемых в переменные из файла allfiles.txt может быть разное. Когда 5, а когда и 150. Если изначально скрипт сделать с наибольшим количеством %sXX%, то выглядит такая портянка из 150 строчек некрасиво и в логе появляются записи об ошибках.

Чтобы избежать таких ошибок можно конечно перед вызовом call сделать проверку на то, пустая переменная или нет и в зависимости от этого продолжать работу или завершить, но от портянки вызовов это не избавляет.

Может есть у кого более изящное решение?
Аватара пользователя
Iska

Re: CMD/BAT - [решено] Обработка получаемых переменных из текстового файла

Сообщение Iska »

Цитата alexxx2011:



Извлечь из текстового файла названия архивов, которые там записаны в столбик
CMD/BAT - [решено] Обработка получаемых переменных из текстового файла




И где образец этого файла, упакованного в архив?




Цитата alexxx2011:



Есть примерно такой вот скрипт:
CMD/BAT - [решено] Обработка получаемых переменных из текстового файла




Что это? Откуда это? Зачем это?! Вот всё:



Код:

Код: Выделить всё

for /f "usebackq delims=" %%i in ("List.txt") do "7z.exe" … "%%~i"

что примерно нужно, если, как Вы пишете, «названия … записаны в столбик».
Аватара пользователя
alexxx2011

Re: CMD/BAT - [решено] Обработка получаемых переменных из текстового файла

Сообщение alexxx2011 »

Цитата Iska:



что примерно нужно, если, как Вы пишете, «названия … записаны в столбик».
CMD/BAT - [решено] Обработка получаемых переменных из текстового файла




А что, изящное решение. Очень даже подошло. Большое спасибо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»