我是 Powershell 的新手,目前正在撰寫一個將wbadmin get versions命令的結果寫入文本檔案的腳本。結果包含兩個(或更多)條目。
我的結果(德語):
wbadmin 1.0 - Sicherungs-Befehlszeilentool
(C) Copyright Microsoft Corporation. Alle Rechte vorbehalten.
Sicherungszeit: 06.01.2022 10:02
Sicherungsziel: 1394/USB-Datentr?ger, Beschriftung Volume Ni-ssan Skyline(D:)
Versions-ID: 01/06/2022-09:02
Wiederherstellbar: Volume(s), Datei(en), Anwendung(en), Bare-Metal-Recovery, Systemstatus
Snapshot-ID: {a14340c6-b013-4f24-9e0c-01b508d32e73}
Sicherungszeit: 06.01.2022 15:43
Sicherungsziel: 1394/USB-Datentr?ger, Beschriftung Volume Ni-ssan Skyline(D:)
Versions-ID: 01/06/2022-14:43
Wiederherstellbar: Volume(s), Datei(en), Anwendung(en), Bare-Metal-Recovery, Systemstatus
Snapshot-ID: {eaac6691-2fc7-416c-aec2-b9c936908206}
測驗腳本:
$patht = "C:\blaBla.txt"
$process = wbadmin get versions
New-Item $patht
Add-Content $patht -Value $Process
問題是我只對第二個(06.01.2022 15:43)條目感興趣。有沒有辦法只將想要的條目匯出到我的 .txt 檔案中?
uj5u.com熱心網友回復:
我只對第二個 (06.01.2022 15:43) 條目感興趣。
我想你的意思是你只對串列的最后一個條目感興趣,而不是那個特定日期的條目。
您可以在雙換行符處拆分并獲取最后一部分:
$process = @"
wbadmin 1.0 - Sicherungs-Befehlszeilentool
(C) Copyright Microsoft Corporation. Alle Rechte vorbehalten.
Sicherungszeit: 06.01.2022 10:02
Sicherungsziel: 1394/USB-Datentr?ger, Beschriftung Volume Ni-ssan Skyline(D:)
Versions-ID: 01/06/2022-09:02
Wiederherstellbar: Volume(s), Datei(en), Anwendung(en), Bare-Metal-Recovery, Systemstatus
Snapshot-ID: {a14340c6-b013-4f24-9e0c-01b508d32e73}
Sicherungszeit: 06.01.2022 15:43
Sicherungsziel: 1394/USB-Datentr?ger, Beschriftung Volume Ni-ssan Skyline(D:)
Versions-ID: 01/06/2022-14:43
Wiederherstellbar: Volume(s), Datei(en), Anwendung(en), Bare-Metal-Recovery, Systemstatus
Snapshot-ID: {eaac6691-2fc7-416c-aec2-b9c936908206}
"@
$last = $process -split '\r?\n\r?\n' | select -Last 1
Write-Host $last
印刷
時間:06.01.2022 15:43
Sicherungsziel:1394/USB-Datantr?ger,Beschriftung Volume Ni-ssan Skyline(D:)
版本號:01/06/2022-14:43
Wiederherstellbar: Volume(s), Datei(en), Anwendung(en), Bare-Metal-Recovery, Systemstatus
快照 ID:{eaac6691-2fc7-416c-aec2-b9c936908206}
uj5u.com熱心網友回復:
我假設它wbadmin get versions回傳一個字串陣列,在這種情況下,您可以執行以下操作:
# join the strings to form a single multilined string
$process = (wbadmin get versions) -join [environment]::NewLine
# split on the empty newlines to get text blocks.
$blocks = $process -split '(\r?\n){2,}' | Where-Object { $_ -match '\S'}
# now select the block that has the info for the date you are after
# since the string contains dots (that have special meaning in regex), you need to escape the search string
$search = [regex]::Escape('Sicherungszeit: 06.01.2022 15:43')
$blocks | Where-Object { $_ -match "(?m)^$search" } | Set-Content -Path "C:\blaBla.txt"
結果:
Sicherungszeit: 06.01.2022 15:43
Sicherungsziel: 1394/USB-Datentr?ger, Beschriftung Volume Ni-ssan Skyline(D:)
Versions-ID: 01/06/2022-14:43
Wiederherstellbar: Volume(s), Datei(en), Anwendung(en), Bare-Metal-Recovery, Systemstatus
Snapshot-ID: {eaac6691-2fc7-416c-aec2-b9c936908206}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/406813.html
標籤:
