• ベストアンサー

rename コマンドでファイル名を短く出来る?

デジカメから取り込んだ写真が DSCF9352.JPG などとなってまして、 これを 9352.jpg にしたいと思ってます。 まず、rename でダイレクトに大文字から小文字に変換は出来ますか? 試したところ出来なかったのでこちらでやりました。 rename *.JPG *.JPP rename *.JPP *.jpg 次に DSCF9352.jpg の DSCF を削除したいのですが、 それは可能でしょうか? rename DSCF* * とは出来ないようですね rename コマンド以外でも、なにか方法あればよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • auty
  • ベストアンサー率58% (284/486)
回答No.2

Tacosanさんの指摘が参考になりましたので、勉強してみました。 残念ながら、2つのバッチファイルになりましたが試してみてください。 次の条件を仮定しています。 ・ ファイル名の"DSCF"は固定で、一度しか現れない。 ・ 必要なら、Pathの通ったところに保存しておく。   または、自分用のディレクトリを作成しPathを通す。 --------------------------------------------------------------------------- : : rn1.bat : @echo off for %%f in ( DSCF*.jpg ) do ( call rn2.bat %%f ) --------------------------------------------------------------------------- : : rn2.bat : @echo off set fn=%1 echo %fn% ---> %fn:DSCF=% rename %fn% %fn:DSCF=% --------------------------------------------------------------------------- バッチで一時的に呼び出すため、ファイル名で使われる多くの環境変数%fn%は 消さなくても残らないようです。

その他の回答 (1)

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

filename という名前の環境変数に DSCF9352.jpg という値が入っているとすると, %filename:DSCF=% で 9352.jpg になります. だから for %f in (DSCF*.jpg) do (set fn=%f & rename %fn% %fn:DSCF=%) でできるかもしれない. ただしこちらでは全く試していないし間違っていると大変なので覚悟はしておくこと. 詳細は for /? とか set /?.

yasu182
質問者

お礼

ちょっと危険ということなので マニュアルをじっくり読んでからやってみますね 回答ありがとうございました。