Как выполнить.bat файл из psake?

Я пытаюсь в сценарии PowerShell PSake выполнить файл.bat. Это возможно? Или я должен сделать обходной путь?

3 ответа

Решение

Попробуйте следующее:

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

Нет необходимости заключать вызов cmd.exe в функцию exec {} PSake, но если вы это сделаете, сборка завершится неудачно, если пакет вернет что-либо, кроме 0.

Задача ниже всегда позволяет сборку терпеть неудачу:

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

Это работает для меня:

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

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

  Exec { & $mybat }
}

Не надо прямо упоминать cmd.exe -- с помощью & в блоке сценария Exec кажется достаточно.

Чтобы выполнить.bat (или.cmd) из PowerShell:

foo.bat:

@echo off
echo "foo"

foo.ps1:

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

Затем мы можем запустить скрипт:

D:\dev> .\foo.ps1
"foo"
Другие вопросы по тегам