我有一个带
的Bat文件"C:\Program Files (x86)\Jenkins\jre\bin/java" -jar "C:\Program Files (x86)\Jenkins/war/web-inf/jenkins-cli.jar" -s "http://localhost:8080" create-job "buildjob" < "config.xml"
"C:\Program Files (x86)\Jenkins\jre\bin/java" -jar "C:\Program Files (x86)\Jenkins/war/web-inf/jenkins-cli.jar" -s "http://localhost:8080" safe-restart
"C:\Program Files (x86)\Jenkins\jre\bin/java" -jar "C:\Program Files (x86)\Jenkins/war/web-inf/jenkins-cli.jar" -s "http://localhost:8080" build buildjob -p "Path=/" -w -s
我无法直接在PowerShell中运行,因此我将其放入与脚本相同的文件夹中的bat文件中并添加
cmd.exe /c 'ConfigureJenkinsJob.bat'
但是这会导致系统无法找到指定文件的错误。
答案 0 :(得分:1)
该命令正在尝试从当前工作目录运行批处理文件,该目录不一定是脚本所在的文件夹。如果您需要从同一文件夹运行另一个脚本,请使用$MyInvocation
自动变量来确定父文件夹:
$dir = Split-Path -Parent $MyInvocation.MyCommand.Path
cmd.exe /c "$dir\ConfigureJenkinsJob.bat"
您可以简单地使用调用运算符(cmd /c
),而不是使用&
,因为批处理文件可以直接从PowerShell运行:
$dir = Split-Path -Parent $MyInvocation.MyCommand.Path
& "$dir\ConfigureJenkinsJob.bat"