2017-10-23 4 views
0

複数のテキストファイルで、「青」のすべてのインスタンスを見つけて「ピンク」に変更したいと考えています。私はFAR(Find And Replace)ソフトウェアをダウンロードできないので、すでにコンピュータ上にあるものを使う必要があります:Powershell/cmd/batch。複数のテキストファイルの内容を変更する

Powershellの複数のファイルに対してこれを行う方法がわからないので、私はバッチとPowershellを組み合わせることに決めました。これは動作しません

for %%F in ("C:\mypath\*") do (
powershell -command(get-content %%F) -replace 'blue', 'pink'| set-content -encoding ASCII %%F 
) 

、私はエラーメッセージ「のセット内容は、内部コマンドとして認識されていません」を受信します。これは私が現在持っているバッチコードです。

2つの言語を一緒に使用するといくつかの問題が発生する可能性があることを認識しています。これは、バッチ専用またはPowershell専用です。

ありがとうございます。

+0

あなたのコードは、あなたが.jpg' 'と' .bmp'を交換していると言います。 – Squashman

+0

それは私がやっていることですが、混乱を避けたいので、代わりに色を使うことにしました。 – Alex

+1

バッチファイル内にあるため、PIPEはPOWERSHELLコマンドではなくバッチファイルの一部として認識されています。 Powershellコードを引用符で囲む必要があります。 – Squashman

答えて

0

これは完成したコードです。それは「青」を見つけて、スペースを含むパスと、複数のファイルから「ピンク」に置き換え:彼らの助けのためAacini、Squashmanやコンポに

for %%F in ("C:\mypath\*") do powershell -command "(get-content '%%F') -replace 'blue', 'pink'| set-content -encoding ASCII '%%F'" 

感謝。あなたが唯一のPowerShellあなたができれば使用しなければならない

0

Get-ChildItem "C:\mypath" -file | %{$path=$_.FullName; (Get-Content $path).Replace('blue', 'pink') | set-content $path -encoding ASCII } 
関連する問題