2017-06-14 103 views
0

我有線流(的schtasks /query /XML輸出),含多個XML文件連接在一起,並通過以下形式的意見分離如何編寫由分隔符分隔的行流以分隔文件?

<!-- \Microsoft\Windows\WS\WSTask --> 

我想寫入該輸出到單獨的文件,每個包含一個XML文件以分隔符命名。

+0

可以做得到,但是有你需要做的第一幾個方面的考慮 - 你什麼時候定義導出到需要維護的任務文件夾層次文件?你想如何命名定義文件? –

+0

@ MathiasR.Jessen命名並不重要。例如。你可以用下劃線(或任何其他佔位符)替換反斜槓並將所有文件寫入同一個目錄。 –

回答

1

一個解決方案是加入所有行,剝離第一行和最後一行,拆分註釋(保留它們),然後使用該對的第一項作爲文件名併成對地遍歷數組項目作爲要保存的XML文檔。這應該所有任務保存到當前路徑:

$tasks = schtasks /query /XML 
[xml[]]$XMLTasks = ([string[]]$tasks) -join "`n" -replace '\<\/Tasks\>$' -split "(\<!--.*?-->)"|select -skip 1|%{$_.trim()} 
For($i=0;$i -lt $XMLTasks.Count;$i=$i+2){ 
    $SavePath = join-path $pwd.path ($XMLTasks[$i].'#comment'.Trim(' \').Replace('\','_')+'.xml') 
    $XMLTasks[$i+1].Save($SavePath) 
}