だから私はヘッダー文字列を置き換えるためにたくさんのファイルの内容を取得しようとしています:
$replaces = dir | select Name, @{n='content';e={(get-content $_) -replace "header-foo","header-bar"}}
次に、次のリストが表示されます。
Name Content
---- ----------
a.txt header-foo blah blah
b.txt header-foo blah blah blah
c.txt header-foo blah
次に、この値を次のように set-content -value に渡したいと思います。
$replaces | set-content -Path {"alt/" + $_.Name} -Value {$_.content}
私のすべてのファイルだけがコンテンツを持っています$_.content
。私も試し-Value ($_.content)
ましたが、それも正しいことをしません。
foreach を使用した場合にのみ機能します。
$replaces | foreach { set-content -Path ("alt/" + $_.Name) -Value $_.content }
これはなぜですか?がないと正しく動作しないのはなぜforeach
ですか?