2

私は PowerShell とスクリプト作成/プログラミングの初心者ですが、CSV ファイルの列 1 にある値をディレクトリ内の各 XML ドキュメントから検索し、その値を列の値に置き換える PowerShell スクリプトを作成しようとしています。 2 つの同じ CSV。次に、スクリプトは CSV の次の行に移動し、プロセスを繰り返し、CSV の列 1 のすべての値が検索され、それに応じて置換されるまで続行する必要があります。

以下をまとめましたが、どのように進めればよいか途方に暮れています。

$c = import-csv C:\somecsv.csv)
$xmls2search=get-childitem C:\somedirectory\*.xml
foreach ($xmldoc in $xmls2search)
{
  (Get-Content $xmldoc.PSPath) | 
  Foreach-Object {$_ -replace $c[i].column1name, $c[i].column2name} | 
  Set-Content $xmldoc.PSPath
}
4

1 に答える 1

3

あなたの状況を考えると、私はおそらくこのようなことをするでしょう。

$c = Import-Csv yourcsv.csv

Get-ChildItem *.xml | Foreach-Object {
  # Out-String in the next line lets you work with a single string rather than an
  # array of strings.
  $xmldoc = (Get-Content $_.PSPath | Out-String)

  # Loop through your CSV, updating $xmldoc with each pass
  $c | Foreach-Object {
    $xmldoc = $xmldoc -replace $_.column1name,$_.column2name
  }

  # Write the updated $xmldoc back to the original XML file's path
  $xmldoc | Set-Content $_.PSPath
}
于 2012-09-21T16:52:10.857 に答える