0
我试图打印名称中包含“jar-with-dependencies”的所有文件的名称。我写了下面几行来做到这一点。无法通过Jenkins打印其名称中包含特定字符串的文件
FOR /R serviceFolder %%G IN ("*jar-with-dependencies*.jar") DO (
set jarName="%%~nG"
echo %jarName%"
)
当我从bat文件运行下面的代码时,它运行并打印名称。但是,当我从詹金斯执行此操作时,出现错误,提示“系统找不到指定的文件”。我检查了詹金斯的文件夹位置,我在正确的文件夹中。我在这里做错了什么?任何帮助将非常感激。
第2次尝试,仍然没有运气:
FOR /R update-service %%G IN ("*jar-with-dependencies*.jar") DO (
set jarName="%%~fG"
echo "%jarName%"
)
第三尝试,还是同样的错误。
SETLOCAL EnableDelayedExpansion
FOR /R update-service %%G IN ("*jar-with-dependencies*.jar") DO (
set "jarName=%%~fG"
echo "%jarName%"
)
'设置 “的JARname = %%〜FG”''作为对/ R'循环遍历文件**递归子文件夹**,然后使用双引号'echo“%jarName%”' – JosefZ
请注意'set“jarName = %%〜fG”'中的第一个双引号的位置。而且,'FOR/R'不能导致描述'系统找不到指定的文件'错误信息。问题出现在代码块内的百分比扩展。使用['SETLOCAL EnableDelayedExpansion&echo“!jarName!”&ENDLOCAL'](https://ss64.com/nt/delayedexpansion.html),或使用脚本范围的'SETLOCAL EnableDelayedExpansion'。对不起,我没有注意到它之前:) – JosefZ
@JosefZ包围有问题吗?当我在for循环的同一行上打印名称时,会打印名称。我尝试过:FOR/R Services \ update-service %% i IN(“* jar -with-dependencies * .jar”)DO echo“%%〜fi” – mayooran