我正在运行此简单的配方块以在IIS中创建Web应用程序
powershell_script "create_site_my_site" do
code "New-webapppool -name 'My_Web_App'; New-Website -Name 'My_Web_App' -applicationpool 'My_Web_App' -Port '80' -IPAddress * -PhysicalPath 'c:\webs\My_Web_App' "
action :run
not_if "get-website | where-object { $_.name -eq 'My_Web_App' }"
end
这里的问题是,NOT_IF部分始终为真
PS C:\Users\carlos>
PS C:\Users\carlos> get-website | where-object { $_.name -eq 'asdfasdfasdf' }
PS C:\Users\carlos> echo $lastexitcode
1
PS C:\Users\carlos> get-website | where-object { $_.name -eq 'My_Web_App' }
Name ID State Physical Path Bindings
---- -- ----- ------------- --------
My_Web_App 6 Stopped c:\webs\My_Web_App http *:80:
https *:443:
PS C:\Users\carlos.camacho> echo $lastexitcode
1
现在,我的问题是关于如何根据我的代码返回值在NOT_IF中返回True或False?
您应该利用Windows食谱中的powershell_out资源。
这样一来,如果输出为空,则可以检查命令的错误或不可以。
您的情况应该这样做:
only_if powershell_out("get-website | where-object { $_.name -eq 'My_Web_App' }").stdout.empty?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句