如何从psake执行.bat文件?

时间:2012-04-19 12:09:07

标签: deployment powershell build execute psake

我正在尝试使用powershell psake脚本来执行.bat文件。这可能吗?或者我必须做一个解决方法吗?

3 个答案:

答案 0 :(得分:3)

尝试以下方法:

task CallBatch {
  exec {cmd.exe /c "path\to\my\testscript.bat"}
}

没有必要在PSake的exec {}函数中包含对cmd.exe的调用,但如果这样做,如果批处理返回0以外的任何内容,则构建将失败。

下面的任务总是让构建失败:

task Return1FromCmd {
  exec {cmd.exe /c "@exit 1"}
}

答案 1 :(得分:1)

从PowerShell执行.bat(或.cmd):

foo.bat:

@echo off
echo "foo"

foo.ps1:

. .\foo.bat
#or
.\foo.bat
#or
& .\foo.bat

然后我们可以运行脚本:

D:\dev> .\foo.ps1
"foo"

答案 2 :(得分:1)

这对我有用:

properties {
  $mybat = 'C:\path\tool.bat'
}

task Test -depends ... { 
  "Bla bla"

  Exec { & $mybat }
}

无需直接提及cmd.exe - 在Exec脚本块中使用&似乎就足够了。