Windows のコマンド ライン環境を使用してバッチ ファイル スクリプトを作成しており、ファイル内の特定のテキスト (例: "FOO") を別のテキスト (例: "BAR") に変更したいと考えています。これを行う最も簡単な方法は何ですか? 組み込み関数はありますか?
ベストアンサー1
ここでの回答の多くは私を正しい方向に導いてくれましたが、どれも私に適したものではなかったので、私の解決策を投稿します。
私は PowerShell が組み込まれた Windows 7 を使用しています。ファイル内のすべてのテキストを検索/置換するために使用したスクリプトは次のとおりです。
powershell -Command "(gc myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt"
説明すると:
powershell
Windows 7に含まれているpowershell.exeを起動します。-Command "... "
実行するコマンドを含むpowershell.exeのコマンドライン引数です(gc myFile.txt)
myFile.txt
(コマンドgc
の短縮形Get-Content
)の内容を読み取ります-replace 'foo', 'bar'
置換コマンドを実行して置換するfoo
だけですbar
| Out-File myFile.txt
出力をファイルにパイプするmyFile.txt
-encoding ASCII
コメントが指摘しているように、出力ファイルをUnicodeに転記するのを防ぐ
Powershell.exeはすでにPATHステートメントに含まれているはずですが、含まれていない場合は追加できます。私のマシン上の場所は次のとおりです。C:\WINDOWS\system32\WindowsPowerShell\v1.0
更新
どうやら最近のWindowsシステムにはPowerShellが組み込まれており、これを使用して直接アクセスできます。
(Get-Content myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt