Windowsで文字列を置換するSW

Windowsで文字列を置換するSW

コマンドラインを使用して変更できるようにしたいテキスト ファイル (実際は XML) があります。つまり、Windows バッチの一部として、文字列 (この場合は、ファイル内の他の場所には存在しない文字を使用する @@@@) を検索し、それを日付 '8/18/11' などの単純なものに置き換えたいのです。

'grep'、'perl'、またはその他の方法で、短時間で文字列を置き換える方法はありますか? 繰り返しますが、プロセスを自動化したいので、これはコマンド ライン経由で行う必要があります。

ちなみに、私の PC には Active State PERL がインストールされています。

答え1

ファイル内のすべての を に置き換えるには、次のfindthisようにします。replacetoexample.txt

perl -pi -e 's/findthis/replaceto/g' example.txt 

答え2

すでに回答されている内容に間違いはありませんが、選択肢を増やすために、Windows 7 を使用している場合は PowerShell もインストールされていることを指摘しておきます。また、必要に応じて XP/Vista にインストールすることもできます。次に、

$foo = gc C:\Path\To\File.txt; $foo | %{$_.replace('@@@@', '8/1/11')} | Out-File C:\Path\To\File.txt

答え3

grepはご存知のようですね。同じユーティリティを使うといいかもしれません。Windowsで利用可能インストールする必要はありませんが、パス内 (またはバッチ ファイルが実行される同じフォルダー内) に配置するだけで済みます。使用する場合は、バイナリ ファイルだけでなく「依存関係」もダウンロードすることを忘れないでください (または、インストール実行可能ファイルをダウンロードしたい場合は、その種のものをダウンロードしてください)。

あるいは、VBS言語(Windows XP用のスクリプト言語)を使用して、ファイル内の文字列を置き換えるスクリプトを作成することもできます(詳細はこのリンクをご覧ください)を使用してコマンドラインからスクリプトを実行します。cscript

関連情報