Как выполнить.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"