2017-06-14 9 views
0

Iが一緒に連結され、Iは、それぞれ1つのXMLファイルを含む、別のファイルにこの出力を書き込みたいフォームデリミタで区切られたファイルのストリームを、別々のファイルに書き込む方法は?

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

のコメントによって分離された複数のXMLファイルを含む、ライン(schtasks /query /XMLの出力)のストリームを持っています区切り文字の後に付けられています。

+0

は確かに行うことができます、しかし、あなたが最初に確認する必要があり、いくつかの考慮事項があります - あなたが定義をエクスポートするときには、タスク、フォルダ階層を維持する必要がありますかファイル?どのように定義ファイルの名前を付けたいですか? –

+0

@ MathiasR.Jessen命名はそれほど重要ではありません。例えば。バックスラッシュをアンダースコア(または他のプレースホルダ)に置き換えて、すべてのファイルを同じディレクトリに書き込むことができます。 –

答えて

1

1つの解決方法は、最初と最後の行を削除し、コメントを分割(保持)した後、ペアの最初の項目をファイル名と2番目の項目として使用して配列を反復処理することですアイテムを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) 
} 
関連する問題