特定の拡張子を持つテキストファイル内容の置換プログラム

アバター
spaaaark・∀・
記事: 66
登録日時: 12年前
住所: 埼玉
連絡を取る:

特定の拡張子を持つテキストファイル内容の置換プログラム

投稿記事 by spaaaark・∀・ » 8年前

というものを作ってみました。
なんで作ったかって、前回お話ししたスキンの公開用ファイルを作ったとき、大量のパスのリネームが必要になったからです。

まあそれはさておき仕様なんですが、コンソールアプリケーションで引数を指定して実行します。これだけやれば対象フォルダ内すべての
指定テキストファイルに対して置換をかけてくれます。具体的にはこんな感じ:

CODE:

rename.exe     ...     ...
そしてコードはこんな感じ。短所として置換の有無にかかわらず対象ファイルすべてのタイムスタンプが更新されてしまうのですが、
それについては気が向いたら直そうと思います。誰かがやってくれてもいいのよ??
あと、とりあえずできればよかったのでリファクタリングとかエラーチェックとかは今のところ一切やってないです(((
► スポイラーを表示

YuO
記事: 947
登録日時: 14年前

Re: 特定の拡張子を持つテキストファイル内容の置換プログラム

投稿記事 by YuO » 8年前

既存の物を使うとすると,文字コードの問題を無視すれば,

CODE:

Get-ChildItem *.txt -Recurse | % { [IO.File]::WriteAllText($_.FullName, [IO.File]::ReadAllText($_.FullName, [Text.Encoding]::Default).Replace('aa', 'ab'), [Text.Encoding]::Default) }
あたりでできるはずです。
# 未確認。
Bash for Ubuntsu for Windows上てsed,とかも可能ですが……。

コマンドプロンプトだけだと置換ができないはず。