我公司有一款软件,用于更新客户服务器上的安装程序。在安装过程中,会创建一个环境变量以及一个包含以下几行的任务:
多变的:
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 仅返回“”,表示变量未定义。
我们不知道还能做什么。有人能帮我找出发生了什么吗?
答案1
简单的重启就解决了这个问题。显然操作系统在设置过程中没有完全映射它,尽管从 CMD 手动调用时可以识别它。
但是,我们不知道为什么它无需重新启动就能在其他服务器上运行。