Jenkins执行批处理输出for循环结果至文件报错排查
问题根源与解决方案
这个问题的核心在于Windows命令行直接执行命令和**批处理脚本(包括Jenkins的Windows批处理步骤)**中,for循环变量的语法规则存在差异:
- 在命令行窗口直接敲命令时,for循环的变量只需要单个
%,比如%i; - 但在批处理脚本里(Jenkins的Windows批处理任务本质是执行一个临时批处理脚本),for循环的变量必须用双
%,也就是%%i,而且整个循环里的变量要统一替换,不能只改一部分。
你当前的命令里,for语句的变量还是%i,但echo部分改成了%%i,这种混合写法违反了批处理的语法规则,所以才会抛出语法错误提示。
修正后的正确命令
for /f "delims=" %%i in ('dir /b /ad "D:\myWork\organization"') do @echo D:\myWork\organization\%%i > output.txt
额外注意事项
- 如果你的Jenkins任务指定了工作空间,
output.txt会默认生成在Jenkins的工作目录下,而非D:\myWork\organization。如果需要把文件生成到目标目录,建议写完整路径:> D:\myWork\organization\output.txt - 如果要把所有结果追加到文件而非覆盖,把
>改成>>即可。
内容的提问来源于stack exchange,提问作者voltas
相关产品推荐
相关产品推荐

