PDA

Показать полную графическую версию : При выполнении скрипта создаётся побочная папка в системной директории


bish
07-04-2011, 07:59
Есть код: ...
Set skin="%~dp0skins"
Set PlugPath=%Path_1%\plugins
For /F "usebackq delims=" %%C In (` Dir %skin% /AD /B /ON 2^>nul `) Do (
For %%B In ("%~dp0skins\%%C\*.zip") Do (
Call "%~dp07z.exe" x "%%B" -o"%PlugPath%\%%C\skins" -aoa >nul
)
)
...

При выполнении скрипта с этим куском кода создаётся папка "C:\WINDOWS\system32\skins". Подскажите, почему она создаётся ? Как исправить код, чтобы этого не было ? В остальном скрипт делает всё правильно, т.е. распаковывает архивы куда надо, вот только этот побочный нежелательный эффект.

gora
07-04-2011, 09:53
Подскажите, почему она создаётся ? »
В Вашем куске отсутствует определение переменной %Path_1%, что в ней? Хорошо бы еще знать, где расположен сам скрипт, дабы определится со значением в %~dp0 (может он у Вас расположен в C:\WINDOWS\system32\ )
Попробуйте перед Call поставить Echo и убрать >nul в конце строки. Вы увидите возможные ошибки в путях в этой строке.

bish
07-04-2011, 10:29
gora,
Переменная %Path_1% определяется до этого куска кода из реестра - путь установки программы. Она определяется правильно - проверил командой Echo. Сам скрипт должен запускаться из %Temp% . Возможно из-за этого и происходит казус, т.к. проверял скрипт запуском из другой папки. Сейчас проверим, о результатах сообщу.

Проверил: скрипт делает всё как задумано, побочной папки не создаётся, ошибок в путях при распаковке нет.

Чтобы было понятнее опишу задачу: скрипт в реальных условиях должен установить скины к программе, которая уже установлена в системе; скрипт, папка skins с консольным архиватором 7z упакованы в SFX 7-zip архив, в конфигурационном файле которого и прописан запуск скрипта. И вот тут то и создаётся злосчастная папка в системной директории. Главное, свою задачу скрипт выполняет. Непонятно ...




© OSzone.net 2001-2012