Пакетные сценарии XP - архивирование с циклом rinrar через каталог * .csv - PullRequest
1 голос
/ 01 декабря 2008

Я прочитал множество статей сейчас, и это не ясно, и есть много версий, и это, и то, и другое, и я собирал вещи вместе и дошел до сих пор, моя проблема в том, что команда 'rar' не принять мою переменную подстановки и вместо этого читает ее как строку.

Но это то, что у меня есть

@ эхо выключено

SETLOCAL

set path =% path%; "C: \ TEMP \ Output"

set _sourcedir = C: \ TEMP \ Output

set _logfile = c: \ temp \ Output \ zip_log.txt

set _rarpath = C: \ Program Files (x86) \ WinRAR

echo Запуск пакета rar>% _logfile%

:: Установить каталог по умолчанию

pushd% _sourcedir%

каталог сканирования эха:% _sourcedir%

FOR %% f IN (* .txt) DO (

эхо %% f

% _ rarpath \ rar.exe тест

)

POPD

ENDLOCAL

@ echo on

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

Я пытаюсь перебрать каталог и найти все .txt файлы и архивировать их. (rar em)

Эхо выводит правильные имена файлов.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2008

Я думаю, что это ваша проблема:

set _rarpath=C:\Program Files (x86)\WinRAR

В пакетных файлах переменная окружения является пробелом, поэтому она считает _rarpath C:\Program

Заключите путь в двойные кавычки и посмотрите, поможет ли это:

set _rarpath="C:\Program Files (x86)\WinRAR"

Кроме того, в вашем цикле FOR меняется

%_rarpath\rar.exe a test

до

%_rarpath%\rar.exe a test

(или, возможно, это была опечатка?)

0 голосов
/ 01 декабря 2008

Я не понимаю, где вы просите winrar что-нибудь сделать с вашими файлами? %% f должен быть где-то в командной строке winrar.

Кроме того, вам вообще не нужен цикл: rar.exe a test.rar% yourpath% *. Csv или аналогичный.

...