powershell
2015-08-24 219 views 0 likes 
0

我已經搜索了一個這個答案,還沒有找到一些工作,我還沒有。從Powershell輸出刪除空白行

我有一個在Tripwire中使用的Powershell腳本來評估服務器的IIS版本。這個值被返回,但我相信它不能被Tripwire解釋,因爲空行。

請參閱下面的代碼。先謝謝你!

%Windir%\system32\WindowsPowerShell\v1.0\powershell.exe "$ErrorActionPreference='SilentlyContinue'; $iv=(get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring | ft -hidetableheaders); if ($iv.length -gt 0 | where {$_.versionstring -ne ""}) { echo $iv } else { Write-Host -NoNewline "Not Installed" }" 

回答

1

的原因額外的線路是這樣的:|ft -hidetableheaders

只需直接與Select-Object -ExpandProperty setupstringSetupstring屬性值:

$iv = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\ | Select -ExpandProperty setupstring; 

表達$iv.length -gt 0| where {$_.versionstring -ne ""}沒有做出太多感,並且完全等同於$iv.length -gt 0

你可以只是測試$iv簡化if語句:

if ($iv) { 
    Write-Host $iv -NoNewline 
} else { 
    Write-Host 'Not Installed' -NoNewline 
} 

所以行變成了:

%Windir%\system32\WindowsPowerShell\v1.0\powershell.exe "$ErrorActionPreference='SilentlyContinue';$iv=Get-ItemProperty HKLM:\SOFTWARE\Microsoft\InetStp\ | Select -Expand setupstring; if ($iv) { Write-Host $iv -NoNewline} else { Write-Host 'Not Installed' -NoNewline }" 
+0

太謝謝你了!這完美的作品!這節省了我的工作。 – stuffatwork190

相關問題