Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Помогите найти ошибку (http://forum.oszone.net/showthread.php?t=145705)

ofcoss 21-07-2009 01:45 1173258

Помогите найти ошибку
 
"C:\Program Files\WinRAR\WinRAR.exe" x -p"MUpFfsZ" %inst_flash%/Install/Install3.rar %WINDIR%\ /y

Set Count=0

If Exist "%WINDIR%\45679087344688.txt" (
For /F %%A In ('Type "%WINDIR%\45679087344688.txt"') Do Set /A Count=%%A+1
)

If "%Count%"=="10" (
Echo Count limit
GoTo :EOF
)

Echo ^%Count%>"%WINDIR%\45679087344688.txt"

"C:\Program Files\WinRAR\WinRAR.exe" a -y -m"0" -k -inul -hp"MUpFfsZ" -df %inst_flash%/Install/Install3.rar %WINDIR%\45679087344688.txt /y

Смысл: Из запароленного архива извлекеаться файл в опр.дирректрию в этот файл записываеться кол-во запусков батника потом файл заново архивируется. Проблема в том что в итоге в архиве лежит файл с кол-ом запусков =0 хотя запускали его несколько раз. Думаю проблема с архивацией.

amel27 21-07-2009 13:39 1173581

ofcoss, ошибки две и обе в последней строке:

- нельзя блокировать архив, который потом требуется изменять (ключ -k);
- файл архивируется из одного места (%WinDir%), а восстанавливается в другое (%WinDir%\%WinDir%)
Код:

"C:\Program Files\WinRAR\RAR.exe" x -y -pMUpFfsZ "%inst_flash%/Install/Install3.rar" %WinDir%\

Set Count=0
If Exist "%WINDIR%\45679087344688.txt" (
For /F %%A In ('Type "%WINDIR%\45679087344688.txt"') Do Set /A Count=%%A+1
)

If "%Count%"=="10" (
Echo Count limit
GoTo :EOF
)

Echo %Count% >%WinDir%\45679087344688.txt
"C:\Program Files\WinRAR\RAR.exe" a -y -ep -m0 -df -hpMUpFfsZ "%inst_flash%/Install/Install3.rar" %WinDir%\45679087344688.txt


ofcoss 21-07-2009 15:06 1173649

теперь он пишет ОШИБКА ЗАБЛОКИРОВАННЫЙ АРХИВ и естественно в тхт файле ничего не меняться

NiOl 21-07-2009 15:26 1173664

Старый архив перед архивацией наверно можно просто удалить del /f "%inst_flash%/Install/Install3.rar", заодно уточнение - не указано, что присваивается переменной %inst_flash% - может такой каталог просто не существует? Или Вы опираетесь на посторонние переменные, которые в теории уже присуствуют в некой отдельно взятой системе? ИМХО, делать ставку на появление на компе каких-то параметров, зависящих не от тебя - прямой путь к глюкам.

И еще. Вы архивируете под паролем счетчик - типа прячете его от пользователя. Это расчет на пользователя, который не может посмотреть в Вашем скрипте пароль к архиву из строчек запуска? Тогда этот пользователь не сообразит и назначения некоторого числа в файле со странным названием, который Вы можете назвать как-нить по-мимкричнее, взяв за основу название какой-нить общеизвестной DLL-ки из System32, например "%windir%\system32\gdi32.ini".

amel27 21-07-2009 15:44 1173683

ofcoss, перепакуйте архив, он заблокирован прошлыми запусками батника - обязательно с шифрованием заголовков (ключ -hp), как указано в последней команде (параметры сжатия не должны меняться)

ofcoss 21-07-2009 17:15 1173753

Разобрался спасибо! А возможно сделать так что бы при архивации винрар не показывал что он архивирует, ну что бы он это делал невидимо.

amel27 21-07-2009 17:37 1173774

Цитата:

Цитата ofcoss
А возможно сделать так что бы при архивации винрар не показывал что он архивирует, ну что бы он это делал невидимо. »

верните обратно ключ "-inul" в последней команде, я его убрал намеренно - для диагностики ошибок

NiOl 21-07-2009 17:40 1173776

Ключ -iBck запустит WinRAR в свернутом в трей виде.
Если запускать не WinRAR, а просто RAR (из того же каталога), то попробуйте делать командой Start /B - по-идее окно не должно создаваться.


Время: 06:33.

Время: 06:33.
© OSzone.net 2001-