从同一文件夹执行bat文件

时间:2015-08-10 15:08:47

标签: powershell batch-file

我有一个带

的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'

但是这会导致系统无法找到指定文件的错误。

1 个答案:

答案 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"