• 締切済み

MSDOSですべてのファイル名の前に0をつけるには

写真ファイルが100枚以上あり1枚目から01,02,03,04とつけていき99枚目で001,002,003とつけたらよかったとわかりました。101枚目のファイル名をつけられないからです。 01,02,03のファイルを001,002,003にするために*.batファイルをつくって rename *.* 0*.* としました。そしたら01,02,03の0をけしてそこに0をつける設定になりました。だから11,12,13が01,02,03になってしまいました。 最初の文字を消さずにそこに付け足すrenameのコマンドはあるのでしょうか?教えてください

  • video
  • お礼率0% (0/35)

みんなの回答

noname#3980
noname#3980
回答No.9

 ■ファイル名 2ケタの時    REN ??.* 0??.*      ※「?」マークを使用します。  ■ファイル名 3ケタの時    REN ???.* 0???.*

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.8

既にいろんな回答がされていますが、FOR コマンドとREN コマンドを組み合わせれば使えば一発です! FOR %I IN (*.*) DO REN %I 0%I で、全てのファイルの先頭に0を付加します。

  • h_sakaki
  • ベストアンサー率18% (175/970)
回答No.7

間接で申し訳ないですが、↓で私が紹介した、えみーりえ と言うソフトで、連番機能があります。 とっても便利ですよ!

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=115005
  • ken__t
  • ベストアンサー率41% (53/129)
回答No.6

EXCELを使えば簡単に出来ます。 1.dir /b > 保存ファイル名 で名前を変更したいファイルの一覧を作ります。 2.出来たファイルを開いて、CTRL+Cでコピーします。 3.EXCELを開いて以下の操作を行います。   (1)カラムCに「2.」の結果を貼り付ける   (2)カラムAにrenameと入力する。   (3)カラムAをカラムCの範囲分コピーする。   (4)カラムEの列1に 「="0" & C1」と入力する。   (5)カラムEの列1の右下の角をカラムCの範囲分ドラッグする。 4.入力された範囲を全て選択して、CTRL+Cでコピーします。 5.テキストエディタ(NOTEPAD等)を開いて、貼り付けます。 6.バッチファイルとして、リネームしたいファイルのあるディレクトリに保存します。 7.最後に実行すれば、簡単にリネームが出来ます。

  • ysk6406
  • ベストアンサー率40% (237/589)
回答No.5

ちょっと変わったアプローチかも知れませんが… もし perl が使える環境なら、以下のようなスクリプトで簡単に変換できます。 (ファイル名は 01.jpg,02.jpg,…と仮定します) for $old (<[0-9][0-9].jpg>) {   $new = sprintf("%03d.jpg", $old);   rename($old, $new); } これがファイル x に入っているとして、perl x でOKです。 私は、いつもこれでやっています。

回答No.4

DOSで行わなければいけないのですか? WIN上で行うのであれば FileRenamer2000というソフトはどうでしょうか?・・・ http://www.vector.co.jp/soft/win95/util/se074425.html 私はこのソフトをデジカメのりネーム処理用に使っています。 かなり使いやすいです。

参考URL:
http://www.vector.co.jp/soft/win95/util/se074425.html
回答No.3

このソフトあたりでどうでしょう? ↓

参考URL:
http://www.vector.co.jp/soft/win95/util/se074425.html
  • kazu-kun
  • ベストアンサー率31% (72/232)
回答No.2

renameコマンドだけでは出来ないと思います。

video
質問者

補足

Rename用の便利なソフトとかあるのでしょうか?

  • cool_
  • ベストアンサー率31% (314/1005)
回答No.1

試したことがないので実験してみてください。 バックを取ってからにしてね。 rename *.* 0??.* でどうでしょうか (^_^;) クール

video
質問者

補足

試してみたのですが ?が2つだから長いファイル名の後ろがきえてしまいます。ファイル名がすべて0??だから3つになってしまいます(ピリオドと拡張子の前の文字数)。 rename ??*.* 0??*.* もしたのですが一番前の文字を消して0にされました。rename *.* 0*.*と同じ結果になってしまいました

関連するQ&A

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

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

  • ネットワークドライブ上ファイルのrename *.*

    例えば、通常のドライブであれば、 >cd a:\data >rename *.html *.htm のrename.batファイルをエディターで作れば、 a:\data上のファイルは一括してrenameされますが、 例えば \\lan\data のようなネットワークドライブの場合、DOSコマンドが対応していないのか、全くrenameコマンドを受け付けません。 質問はこうです。 「ネットワークドライブ上の同じフォルダ内にある複数ファイルを一括してrenameするには、どのような手立てがありますか?」 よろしくお願いいたします。

  • batファイルかフリーソフトでファイル名の特定文字まで削除できますか?

    batファイルかフリーソフトでファイル名の特定文字まで削除できますか? batファイルにて元のファイル名の後ろに日付と時刻を入れることはできたのですが、 例: abc.txt → abc_1006160810.txt これを更新するために、_までを削除したいのですが、どのようにbatファイルを作ればいいのか分かりません。 どなたか、知恵をいただけませんか。 したいことは、 abc_1006160810.txt の _1006160810 を削除するだけのbatファイルです。 batファイルではなく、フリーソフトにコマンドラインで一発変換でも構いません。 よろしくお願いいたします。

  • 一括でファイル名の一部を置換したい

    LinuxのFedora Core 10, シェルにtcshを使用しています。よろしくお願いします。 ======================================================================= 複数のディレクトリ内に、"(from home)"のような文字列を含むファイルがあり、 それらのファイル名から一括で"(from home)"という文字列を取り除きたいのですが ======================================================================= 例えば以下のように、2つのディレクトリ(Directory1,Directory2)の下に、 "(from home)"という文字列を含むファイルが2つずつある場合を考えて、 /Directory1/sample (from home).txt         sample2 (from home).txt /Directory2/ sample3 (from home).txt          sample4 (from home).txt > rename "(from home)" "" `find / -name "(from home)" -print` を試したのですが上手くいかず、 > foreach i (`find / -name "(from home)" print`) foreach? rename "(from home)" "" $i foreach? end でも上手くいきませんでした。 もしかしたらfindコマンドで見つけたファイル名をrenameコマンドに 上手く渡せていないのかと思うのですが、どのようにすれば良いのでしょうか? また別の方法でも、一括でファイル名の一部を変更する方法があれば、 ご教授お願い致します。

  • MS-DOSの2バイト文字のファイル名が扱えない

    10年以上前にPC-9801のMS-DOS 3.1 で作成したテキストファイルを フロッピィ経由で WindowsXP Home Edition Version 2002 Service Pack 2 にコピーしようとしました。 ファイル名が1バイト文字のみのものや 2バイト文字でも漢字の場合は問題なくコピーできました。 ところが「α(ギリシア文字アルファ)」や「m(全角ローマ字小文字エム)」で始まるファイル名のものは  ファイルまたはフォルダのコピー エラー  ファイルをコピーできません。送り側のファイルまたはディスクから読み取れません。  OK というウィンドウが出てきてコピーできません。 (コマンドプロンプトでやっても同様です。) 仕方が無いので、PC-9801上で一度1バイト文字のファイル名にRENAMEし、Windows上にコピーし終えてからWindows上でファイル名をαやmに直すという作業をしています。 ワークアラウンドとしては十分ですが、そういったファイルが大量にあるのでとても面倒です。 なんでこんな仕様になってるのでしょうか? どこかの設定を変えることで、 MS-DOSで作成されたαやmで始まるファイルをそのまま扱うようにできないでしょうか。

  • Perl:ファイル名だけ文字化けする

    Perlをいじって2日の者です。 WindowsVistaを使っております。 現在renameを使ってファイル名を変更しようとしています。 現在のファイル名がIDだけで、 Web上にあるそのIDに対応する情報をファイル名に追加しようとしています。 Web上の情報を取得するまではできたのですが、 変数に入れたその情報を、ファイル名に入れようとすると文字化けします。 ただ、その情報をコマンドプロントで扱う時も、テキストへ出力してみても文字化けしません。 文字化けは、文字コードなるものが原因らしいということで、 とりあえずよく見かける「UTF-8」というものにエンコードしてみたところ、 テキストへの出力が、ファイル名へのそれと同様に文字化けしました。 エンコードした上でファイル名に入れようとすると 情報のそのものがないものとして扱われるようになりました。 これはどう解釈すればいいのでしょうか? どうすれば文字化けを解決できるでしょうか?

    • ベストアンサー
    • Perl
  • [DOS] コピー先に同じファイル名がある場合、名前を変えて...

    Win2000のDOS窓にて、xxx.batファイルを使用して 大量のファイルのコピーをしようとしています。 その時、コピー先に同じファイル名が存在する場合 があります。その時、(xxx.batファイルの内容を変える こと無く)自動的に ファイル名001 ファイル名002 : と名前を変えて保存してくれるような「copyコマンド」 知りませんか? 以上、宜しくお願い致します。

  • ファイル名ないにあるカンマを削除し、文字列[.csv]を連結させてファイル名をRenameする方法を教えてください

    Perlで、 ファイル名 「abd@docomo.ne.jp」 というファイル名内のカンマを削除し、 「.csv」という文字列を連結させ、 「abd@docomonejp.csv」 という名前のファイルに Rename する方法をお教えください

    • ベストアンサー
    • CGI
  • □アクセント記号を含む長いファイル名のリネーム方法

    一部の長いファイル名のファイルがリネームできなくて困っています。 そのファイルに共通しているのは特殊なアクセント記号が付いている文字が含ま れています。 そのファイルのアクセント記号は元の文字に記号を上乗せするような記号みたい で 該当の文字を"Back Space"で削除しようとすると文字全体が消えるのではなく アクセント記号のみ消えます。 また、この記号はFlexible Renamer(8.3)での”ダイアクリティカルマークをク リア”ではリネームされません。 Flexible Renamer(8.3)とbulk Rename Utility(2,7,1,2)も試しましたが、エラ ーになって変換できません。 8.3形式のファイル名を調べてrenコマンドでのリネームも試みましたがエラーに なります。 このファイルをアクセント記号無しの短いファイル名にリネームする方法を教え て戴けませんでしょうか? OSは Windows XP Home Edition 2002 SP3です。

  • コマンドプロンプトでファイル名に含まれるスペースを別の文字に置換したい

    コマンドプロンプトでファイル名に含まれるスペースを別の文字に置換したい BAT実行や、BATにドロップする程度の操作でファイル名置換したいと思っています。 たとえば、「abcTEST123.txt」というファイルを下記のバッチにドロップすると、 「abctest123.txt」と言うファイル名に置換されます。 for %%A in (*TEST*.txt) do call :sub %%A :sub set A=%1 ren %A% %A:TEST=test% しかし「TEST」をスペースにしてもファイル名の置換はできません。 コマンドプロンプトではスペースは扱えないのでしょうか。 解決策がありましたらご教授願います。