Исправление скрипта для распаковки фалов
Допустим есть программа распаковщик, которая имеет работает по такому синтаксису:
tool.exe <file.bin> <folder> у меня есть скрипт, который ищет вглубь по папкам файлы *.bin и распаковывает их в папки с именем распаковываемого файла, например скрипт нашёл файл file04.bin, создал рядом с этим файлом папку file04 и распаковал в эту папку содержимое файла file04.bin. собственно делается командой "%%~dpnA" Код:
For /F "Tokens=*" %%A In ('Dir /B /S *.bin') Do ( |
как-то так:
Код:
for /f "tokens=*" %%a in ('dir /b/s *.bin') do tool.exe "%%a" "%%~dpa" |
Почему то не работает, говорит дело в программе.
Есть небольшой нюанс: иногда нужно указывать дополнительные параметры, например вот так выглядит: Код:
For /F "Tokens=*" %%A In ('Dir /B /S *.bin') Do ( MD "%%~dpnA" 2>nul&&tool.exe -o -f "*.bin" "%%A" "%%~dpnA" ) |
Tosyk, может так?
Код:
for /f "tokens=*" %%a in ('dir /b/s *.bin') do tool.exe -o -f "%%a" "%%~dpa" Код:
(for /f "tokens=*" %%a in ('dir /b/s *.bin') do @echo tool.exe -o -f "%%a" "%%~dpa" |
Цитата:
при таком варианте Код:
For /F "Tokens=*" %%A In ('Dir /B /S *.bin') Do ( MD "%%~dpnA" 2>nul&&tool.exe -o -f "*.bin" "%%A" "%%~dpnA" ) Код:
d:\test\>_bin_unpack.cmd Код:
for /f "tokens=*" %%a in ('dir /b /s *.bin') do tool.exe -o -f "*.bin" n-unpacker.ms "%%a" "%%~dpa" Код:
d:\test\>_bin_unpack.cmd |
Tosyk, как-то не стыкуется последний лог с кодом батника - там нет таких команд
|
а, точно
так, нужно чтобы работала такая строчка Код:
tool.exe -o -f "*.bin" n-unpacker.ms file.bin <место куда извлекать> n-unpacker.ms - это скрипт, который использует tool.exe для извлечения из *.bin файлов вместо <место куда извлекать>, можно поставить точку, тогда файлы извлекуться рядом с tool.exe |
могу еще предположить, что <место куда извлекать> не поддерживает завершающий слэш, тогда так:
Код:
for /f "tokens=*" %%a in ('dir /b/s *.bin') do tool.exe -o -f "*.bin" n-unpacker.ms "%%a" "%%~dpa." Код:
(for /f "tokens=*" %%a in ('dir /b/s *.bin') do @echo tool.exe -o -f "*.bin" n-unpacker.ms "%%a" "%%~dpa." |
Код:
d:\test\>tool.exe -o -F "*.bin" n-unpacker.ms "d:\test\A_MOUNT_ROBOT_04.bin" "%~dpa." |
Цитата:
Код:
for /f "tokens=*" %%A in ('dir /b/s *.bin') do tool.exe -o -f "*.bin" n-unpacker.ms "%%A" "%%~dpa." Код:
for /f "tokens=*" %%A in ('dir /b/s *.bin') do tool.exe -o -f "*.bin" n-unpacker.ms "%%A" "%%~dpA." |
аа, я ступил, всё получилось!!
действительно использовалась А заглавная, кстати в скобках ('dir /b/s *.bin') вот так наверное должно выглядеть -> ('dir /b /s *.bin'), и с @echo между do и tool.exe не работает т.о. работающий скрипт: Код:
for /f "Tokens=*" %%a in ('Dir /b /s *.bin') Do tool.exe -o -F "*.bin" n-unpacker.ms "%%a" "%%~dpa." |
|
спасибо за пояснения)
|
Время: 15:47. |
Время: 15:47.
© OSzone.net 2001-