1

だから私はヘッダー文字列を置き換えるためにたくさんのファイルの内容を取得しようとしています:

$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ですか?

4

2 に答える 2