У моей компании есть программное обеспечение, которое обновляет наши установщики на серверах клиентов. Во время установки создается переменная среды вместе с задачей со следующими строками:
Переменная:
setx ccloud "C:\Capela\CCloud" /M
Прим .: используемый путь - это «путь установки», определенный во время установки.
Задача:
schtasks.exe /Create /RU SYSTEM /SC DAILY /TN CCloudUpdater /TR "cmd.exe /C C:\Capela\CCloud\ccloud-updater.bat" /ST 02:00 /F >
У файла bat есть следующие аргументы:
@echo off
cd /d "%CCLOUD%"
ccloud.exe cache -c
ccloud.exe logs -c
ccloud.exe installers -d ccloud --w
if exist "installers\ccloud\ccloud-setup.exe" (
START /WAIT "CCloud Setup" "installers\ccloud\ccloud-setup.exe" /S
)
ccloud.exe auto -t -i -s
timeout 60 > nul
ccloud.exe auto -t -i -s
timeout 900 > nul
ccloud.exe auto -t -i -s
После запуска наши программы и службы загружаются и распаковываются в папку. Пакеты определяются онлайн-менеджером.
Однако есть ОДИН сервер (2k8R2, как и многие другие), который просто не может прочитать переменную, что бы мы ни делали. Задача выполняется по назначению, но поскольку переменная почему-то недоступна, она не может загрузить пакеты.
Мы пробовали использовать
echo "% ccloud%"> path.txt
внутри летучей мыши TXT возвращает только "", как будто эта переменная не определена.
Мы не знаем, что еще делать. Может ли кто-нибудь помочь мне узнать, что происходит?
Простая перезагрузка решила проблему. По-видимому, ОС не полностью отобразила его во время установки, хотя он был распознан при ручном вызове из CMD.
Однако мы не знаем, почему он работал на других серверах без перезапуска.