Jenkins Pipeline重命名文件时rename-item命令无法识别问题咨询
问题原因
报错是因为bat步骤默认调用的是Windows系统的cmd.exe解释器,而Rename-Item是PowerShell专属的命令,cmd环境下无法识别该命令。
命令查询说明
Jenkins的bat步骤本身没有独立的命令列表,它是直接将脚本内容传递给Jenkins agent节点上的cmd解释器执行,所有支持的命令就是对应Windows节点上cmd支持的内置命令、以及系统环境变量Path中包含的可执行程序,直接查询Windows cmd官方命令说明即可。
调整方案
提供两种可行的修改方式:
方案1:改用PowerShell执行重命名操作
直接替换bat步骤为Jenkins原生的powershell步骤,原生支持PowerShell命令:
stage('Rename') { powershell """ Rename-Item -Path "C:\temp\OriginalName.exe" -NewName "OriginalName-${version}.exe" """ }
也可以保留bat步骤,显式调用powershell执行命令:
stage('Rename') { bat """ powershell -Command "Rename-Item -Path 'C:\temp\OriginalName.exe' -NewName 'OriginalName-${version}.exe'" """ }
方案2:使用cmd原生的rename命令
直接用cmd自带的rename命令实现需求,不需要调用PowerShell:
stage('Rename') { bat """ rename "C:\temp\OriginalName.exe" "OriginalName-${version}.exe" """ }
内容的提问来源于stack exchange,提问作者Jeff
相关产品推荐
相关产品推荐

