![]() |
Использование exe-файла, описанного полным путём, в For
Код:
@Echo Off Код:
FOR /F "usebackq delims=" %%i IN (`rar.exe a "1 2 3.rar"`) DO Echo %%i Код:
FOR /F "usebackq delims=" %%i IN (`"%Arc%" a "1 2 3.rar"`) DO Echo %%i Как надо сделать? Мне нежелательно чтобы exe-файл указывался не по полному пути. |
megaloman
Код:
@echo off |
Цитата:
|
megaloman, Foreigner, Iska, тут проблема теоретическая. Поскольку команда, результат выполнения которой разбирается с помощью "for" (в данном случае этой командой является
Код:
"%Arc%" a "1 2 3.rar" выполняется в новой копии интерпретатора командной строки, запущенной с ключом "/C" (то есть командная строка запуска данного процесса выглядит так: Код:
"C:\Windows\System32\cmd.exe" /c "C:\Program Files\WinRar\rar.exe" a "1 2 3.zip" то и обработка символов кавычек ведётся командой "CMD" и подчиняется правилам из справки по команде "CMD", что и приводит к ошибке. Выход из этой ситуации такой: Код:
for /f "usebackq delims=" %%i in (`""%Arc%" a "1 2 3.zip""`) do echo %%i где "подразборная" команда будет запускаться командной строкой Код:
"C:\Windows\System32\cmd.exe" /c ""C:\Program Files\WinRar\rar.exe" a "1 2 3.zip"" |
Iska, тут проблема теоретическая. На самом деле в rar мне нужна команда LB - то есть, мне нужно получить список файлов в архиве. А еще точнее, надо определить - файл архив или нет, так как приходят файлы не со стандартным расширением архива. Спасибо Georgio и всем кто принял участие.
|
Цитата:
Код:
"C:\Program Files\WinRAR\RAR.exe" t "Путь\Архив или ЯкобыАрхив.xxx" && echo Это архив || echo Это не архив, либо битый архив |
Время: 07:54. |
Время: 07:54.
© OSzone.net 2001-