是否可以从 Cake 任务中调用 powershell 命令
Is it possible to call powershell command from within Cake task
我正在从 Psake 构建工具切换到 Cake (https://cakebuild.net/)。我正在为具有(当前)9 种不同部署的相当大的解决方案(30 多个项目)创建脚本。
在 Psake 中,调用 PowerShell 命令很简单,因为整个脚本在 powershell 中已经 运行。
但是现在我遇到了一个问题。我必须在 PS 中调用一些 运行 的命令,但我找不到执行它们的方法。
一些示例:
taskkill /IM iisexpress.exe
Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Stop-Website <'name of website'>}
Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Start-Website <'name of website'>}
我已经尝试使用 StartAndReturnProcess(示例:StartAndReturnProcess("taskkill /IM iisexpress.exe");),但没有成功。我还找到了 Cake.IIS 插件,它可能会解决我在启动和停止 IIS 方面的问题,但还有一些我想调用的其他 PS 命令。
是否可以从 Task 中简单地调用 PowerShell 命令?
像这样:
Task("DoSomeMagic")
.Does(() =>
{
ExecutePowerShellCommad("taskkill /IM iisexpress.exe");
ExecutePowerShellCommad("Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Stop-Website <'name of website'>}");
//ToDo: other magic
});
感谢您的回答和最诚挚的问候,
马丁
你见过 Cake.PowerShell 插件吗?
可以找到示例用法 here,但要提供示例(取自自述文件):
#addin "Cake.Powershell"
Task("Powershell-Script")
.Description("Run an example powershell command with parameters")
.Does(() =>
{
StartPowershellScript("Write-Host", args =>
{
args.AppendQuoted("Testing...");
});
});
自述文件中有更复杂的示例,具体取决于您要实现的目标。
我正在从 Psake 构建工具切换到 Cake (https://cakebuild.net/)。我正在为具有(当前)9 种不同部署的相当大的解决方案(30 多个项目)创建脚本。 在 Psake 中,调用 PowerShell 命令很简单,因为整个脚本在 powershell 中已经 运行。
但是现在我遇到了一个问题。我必须在 PS 中调用一些 运行 的命令,但我找不到执行它们的方法。
一些示例:
taskkill /IM iisexpress.exe
Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Stop-Website <'name of website'>}
Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Start-Website <'name of website'>}
我已经尝试使用 StartAndReturnProcess(示例:StartAndReturnProcess("taskkill /IM iisexpress.exe");),但没有成功。我还找到了 Cake.IIS 插件,它可能会解决我在启动和停止 IIS 方面的问题,但还有一些我想调用的其他 PS 命令。
是否可以从 Task 中简单地调用 PowerShell 命令? 像这样:
Task("DoSomeMagic")
.Does(() =>
{
ExecutePowerShellCommad("taskkill /IM iisexpress.exe");
ExecutePowerShellCommad("Invoke-Command -ComputerName <testing server> -ScriptBlock {import-module WebAdministration; Stop-Website <'name of website'>}");
//ToDo: other magic
});
感谢您的回答和最诚挚的问候, 马丁
你见过 Cake.PowerShell 插件吗?
可以找到示例用法 here,但要提供示例(取自自述文件):
#addin "Cake.Powershell"
Task("Powershell-Script")
.Description("Run an example powershell command with parameters")
.Does(() =>
{
StartPowershellScript("Write-Host", args =>
{
args.AppendQuoted("Testing...");
});
});
自述文件中有更复杂的示例,具体取决于您要实现的目标。