2009-04-02
■[moug]ファイル名の置換(ファイル名の一部文字を別の文字に置き換える)
以前にもファイル名の置換についてのエントリー→(ファイル名の一部を置き換えるようなリネームの方法 - バッチもん研究所 blog) を書きましたが今回はmougでの質問。基本的にバッチファイルの構成は同じです。
(Windows XP Professional) ファイル名の置換
投稿日時: 09/03/31 11:07:13 投稿者: いちごみるく
フォルダ内に複数のファイルがあり、その複数のファイル名の一部を全て変更したいとき、置換のように一気に変更する方法はないでしょうか
http://www.moug.net/faq/viewtopic.php?t=39800&sid=5ad4abefc530b4a2844e143393e0f067
投稿日時: 09/03/31 11:17:03 投稿者: りょう
フリーソフト以外ですと、このぐらいでしょうか。
http://pc.nikkeibp.co.jp/article/NPC/20060301/231453/
投稿日時: 09/03/31 11:29:37 投稿者: いちごみるく
例えば・・・ ()→【】 2008年→2009年 等なんですが、難しいでしょうか?
と質疑が続きますが、結論としてバッチファイルで実現可能です。
例えば・・・として例示されている()→【】 2008年→2009年を実施するバッチです。
echo off for %%f in ( * ) do call :sub "%%f" exit /b :sub set fname=%1 set fname=%fname:(=【% set fname=%fname:)=】% set fname=%fname:2008年=2009年% ren %1 %fname% goto :EOF
簡単に解説しますと、for文で全てのファイルを対象にファイル名を引数にしてサブルーチン(:sub)を呼び出します。サブルーチンでは引数を環境変数 fname に代入して、変数の置換機能を使って置き換えを行っています。この置換については set /? のヘルプに記載されています。最後に rename コマンドでファイル名を置換後のファイル名にリネームしています。
トラックバック - http://d.hatena.ne.jp/jak-san/20090402/1238671393
リンク元
- 311 http://www.google.co.jp/search?hl=ja&q=バッチファイル 指定文字 検索 何文字目&lr=
- 239 http://www.google.co.jp/search?q=ファイル名 特定の文字を一気に&hl=ja&lr=&sa=2
- 204 http://www.google.co.jp/search?q=コマンドプロンプト+文字+抽出&hl=ja&lr=&start=10&sa=N
- 202 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4DAJP_jaJP265JP274&q=windows+フォルダサイズ 取得 コマンド
- 201 http://www.google.co.jp/search?q=バッチファイル+テキスト 呼び出し&hl=ja&lr=&start=10&sa=N
- 191 http://www.google.co.jp/search?hl=ja&q=ファイル名一部削除+バッチ&lr=&aq=f&oq=
- 188 http://www.google.co.jp/url?sa=t&rct=j&q=ファイル 名前 置き換え&source=web&cd=10&ved=0CGEQFjAJ&url=http://d.hatena.ne.jp/jak-san/20090402/1238671393&ei=6YyETr_3JIT
- 181 http://search.yahoo.co.jp/search?p=ファイルを削除するバッチ+for+/f&ei=UTF-8&qrw=0&pstart=1&fr=top_ga1_sa&b=21
- 165 http://www.google.co.jp/search?hl=ja&q=コマンドプロンプト+変数 添え字&lr=lang_ja
- 123 http://search.yahoo.co.jp/search?p=バッチファイル CALL&ei=UTF-8&fr=moz2&rls=org.mozilla:ja-JP:official