2017-07-03 143 views
0

我有一個腳本在PowerShell中開發在C搜索文件夾「設置自舉」:和在搜索特定關鍵詞搜索文件夾和文件

 
Final result:     Passed 

Start time:     2017-07-03 04:38:24 
End time:      2017-07-03 04:42:45 

在Summary.txt文件。

我寫了這樣的事情:

Get-ChildItem C:\program* -Recurse | Where-Object { 
    $_.PSIsContainer -eq $true -and 
    $_.Name -match "setup bootstrap" 
} 

我得到兩個86以及64

還有就是查詢運行SQL Server以獲得64位或86位

select SERVERPROPERTY('productversion') as Version, 
    SERVERPROPERTY('productlevel') as service_pack, 
    SERVERPROPERTY('edition') as Edition, 
    SERVERPROPERTY('collation') as Collation 
go 

我的問題是如何在PowerShell中搜索程序*給我86和64位版本,找到「setup bootstrap」後我必須在summary.txt中搜索

 
Final result: Passed 

Start time:     2017-07-03 04:38:24 
End time:      2017-07-03 04:42:45 

在這個特定的時間間隔。 你能幫我一下嗎?

+0

在「C:\ Program Files」和「C:\ Program Files(x86)」中是否有文件夾「setup bootstrap」?爲什麼?你想要處理哪些? SQL從哪裏來?時間間隔如何發揮作用? –

+0

Angsar謝謝檢查我的問題,是的文件夾存在於兩個文件夾x86以及iam不知道爲什麼,但setbootstrap只有bin文件夾在64位內日誌其中summary.txt需要檢查C:\ Program Files \ Microsoft SQL Server \ 100 \ Setup Bootstrap \ Log i – deepti

+0

如何用空格搜索文件夾Get-ChildItem C:\ program * --Recurse | Where-Object {____。PSIsContainer -eq $ true -and $ _。Name -match「setup bootstrap」 – deepti

回答

0

而不是$_.Name -match你應該使用-Filter與gci。
我不清楚你想要怎麼處理summary.txt的內容。

Get-ChildItem 'C:\Program Files*' -Recurse -Filter '*setup bootstrap*' -EA silentlycontinue| 
    Where-Object PSIsContainer| 
    ForEach-Object { 
     Get-ChildItem $_.FullName -Filter 'summary.txt' | 
     Select-String -Pattern '^Final result:\s+(.+)$'| 
      ForEach-Object {$_.matches.captures.value} 
    } 
+0

我必須搜索關鍵字最終結果:作爲iam開發腳本,在SQL服務器上靜默安裝sp service pack。所以如果我發現那個意思是sp升級的關鍵字是成功的 – deepti

+0

這個解決方案不起作用 – deepti

+0

我還不清楚腳本的最終結果應該是: – LotPings