【发布时间】:2020-10-20 22:40:21
【问题描述】:
在 Jenkins 中,我尝试在 BAT 文件中实现的命令很少。所以我有 2 个 BAT 文件(RUN.BAT 和 CHANGE.BAT)。在RUN.BAT中,命令如下:
CD\
E:
CD E:\RESULTS\1
mkdir 1
xcopy E:\I1\0 E:\RESULTS\1
Above Given Command 将转到特定文件夹并创建一个名为“1”的文件夹,然后 XCOPY 行会将内容从文件夹“O”复制到文件夹“1”。
现在让我们来看看 CHANGE.BAT,这里的命令是:
for /f "tokens=1-7 delims=-:. " %%a in ("%date% %time%") do ren E:\RESULTS\1 %%a%%b%%c_%%d%%e%%f%%g
此命令会将文件夹名称更改为当前系统的日期和时间。
这就是问题所在,当我在 CMD 上调用上述 bat 文件时,它们运行得非常好。但同样不适用于 JENKINS 并抛出“命令的语法不正确”。
我无法理解的是,.bat 文件在 CMD 中有效,但在 Jenkins 中同样无效。
请指导我。
【问题讨论】:
-
您的意思是 Jenkins 正在生成该错误(并且可能没有启动批处理文件),还是批处理文件中的某些内容产生了错误?如果是后者,是哪一个?
RUN.BAT或CHANGE.BAT。如果您不知道是否正在调用其中任何一个,请将echo Start of RUN > "%TEMP%\RUN.LOG"之类的行添加到每个批处理文件中(第二次将RUN更改为CHANGE)。如果/一旦您知道正在调用批处理文件,请添加额外的行,例如echo Got to XXX >> "%TEMP%\RUN.LOG",以查看失败的地方(不是此版本中的两个>>)。 -
另外,顺便说一句,第一个文件的前三行可能可以替换为
CD /D E:\RESULTS(参见CD/?)。你的意思是在(可能已经存在的)1目录内部创建一个1目录吗?
标签: batch-file jenkins batch-processing jenkins-cli