• 締切済み

ファイル名の末尾にある日時を先頭に持って行きたい

aaaa(2012.1.29).xxx bbb(2012.1.30).xxx ccccc(2012.1.31).xxx というようなファイルがあるのですが、日時がファイル名の末尾にあるので エクスプローラで日時順でソートが出来ません。 これを一括で末尾の12文字だけ先頭に持っていくような方法はありませんでしょうか? 手順が増えますが、一回ファイル名をテキストに落として変更するやり方でも良いです。

みんなの回答

  • bardfish
  • ベストアンサー率28% (5029/17766)
回答No.4

わたしならPerlでそういうことをするプログラムを組みます。 ちょっと勉強すればこのくらい簡単に作れる。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

>これを一括で末尾の12文字だけ先頭に持っていくような方法はありませんでしょうか? これはご質問の情報提供が間違いで ウソ: ccccc(2012.1.31).xxx ホントは: ccccc(2012.01.31).xxx のようだって事でしょうか。 さておき。 手順: メモ帳を起動する 下記をコピー貼り付ける set fso = CreateObject("Scripting.FileSystemObject") for each h in wscript.arguments set src = fso.getfile(h) s1 = left(src.name, instr(src.name, "(" )-1) s3 = right(src.name, 4) s2 = mid(src.name, len(s1) + 1, len(src.name) - len(s1) - 4) src.name = s2 & s1 & s3 next 名前を付けて保存で run.vbs というファイル名で保存する 目的のファイルを纏めてrun.vbsの上にドラッグ&ドロップする。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

for と move と環境変数.

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.1

>手順が増えますが、一回ファイル名をテキストに落として変更するやり方でも良いです。 でしたら…… 1)コマンドプロンプトでdir /b *.xxx > filelist.txt などでファイル一覧のテキストを作成する。 2)キーボードマクロが使えるテキストエディタで、 aaaa(2012.1.29).xxx の1行を ren aaaa(2012.1.29).xxx (2012.1.29)aaaa.xxx と書き換えを実施する。 3)2)の手順を全ての行に対して行う。 4)編集の終わったテキストファイルを保存し、拡張子をbatに換えて実行。 でしょうかね。 2)の手順、秀丸でやるならば…(行の二重化と前検索をファンクションキーなどに割り当てた方が楽ですが…) 予め、半角空白を検索実行しておきます。 ●キーボードマクロ記録開始 行の二重化実行 ->先の行の先頭に「ren 」を挿入 ->(endキー押下などで)行の末尾に移動 ->半角スペースを入力 ->Delキー押下で次の行と連結 ->(endキー押下などで)行の末尾に移動 ->左へカーソル移動して拡張子のピリオドの位置まで移動 ->範囲選択モードにして切り取る部分を選択(Shiftキー押したままカーソル移動など) ->選択範囲を切り取り ->前検索実行(半角カーソルの位置に移動する) ->貼り付け(カーソル位置には注意。右へ移動する必要がある…かな) ->(Homeキー押下などで)行の先頭にカーソルを移動 ->次の行にカーソルを移動 ●キーボードマクロ記録終了 で、あとは最終行まで画面見ながらキーボードマクロを実行して編集。 ですかね。

関連するQ&A