我有一个批处理文件如下:
@echo off
REM <--Fetching installed service pack version and storing it in var-->
FOR /f "tokens=* " %%a in ('findstr /I "install.servicepack" ^< "C:ABCD.properties" ') DO SET temp=%%a
SET var=%temp:~22%
REM <-- I tested, correct value is getting assigned to var say 1.2.3-->
REM <--Next, I am changing the directory using CD, in which X, Y and Z is a fixed directory path and after that it is variable based upon %var% value
cd c:XYZ%var%
echo %cd%
REM <-- I tested and directory is correctly set against cd c:XYZ1.2.3
REM <--With in c:XYZ%var% (c:XYZ1.2.3), there is an exe called uninstaller.exe and I am executing it is below:
dir
ECHO MESSAGE: Starting Silent Uninstallation of ABC Package
uninstaller.exe -options -silent
ECHO MESSAGE: Finished Silent Uninstallation of ABC Package
setup :我在windows上安装了Jenkins,并通过ANT中的ssheec任务,我使用cygwin openssh在远程windows机器中调用上述批处理文件。
Issue:当使用上述设置从Jenkins作业调用上述脚本时,它返回"远程命令失败,退出状态为127"。但是,如果我硬编码cd中的%var%的值为cd c:XYZa.b.c,而不是传递为cd c:XYZ%var%,脚本执行良好,即;直接用正确的路径修改目录(cd C:X.Y.Z.1.2.3)。
在更改目录后,我尝试了几种方法来调用uninstall .exe,但没有成功。
请帮。
不要更改TEMP
变量的值:这是一个特殊的系统变量,保存临时目录env。变量。
请选择另一个变量名。
FOR /f "tokens=* " %%a in ('findstr /I "install.servicepack" ^< "C:ABCD.properties" ') DO SET t=%%a
SET var=%t:~22%
如果你改变临时目录,依赖它的程序可能会崩溃(而且有很多)。