[前の記事]« フォルダ内のデータを日付ごとに分別するには
[次の記事]名前に空白を含むサービス名のチェック »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ

ファイル名を任意の数字から始まる連番に変更したい

1673.
ファイル名を任意の連番で書き換えたい
2007年02月22日(木) 10時04分
meitaka◆KQpYi+g=
はじめまして。全くの初心者なのですが、仕事で必要に迫られて壁にぶち当たってます。どなたかご教授頂けると大変嬉しいです。

やりたいことは、規則性がバラバラな大量のファイルの名前を、6桁の任意の数字から始まる連番のファイル名に変更したいのです。
6桁の連番は、ディレクトリごとに完結し、ディレクトリに順番はありません。
フリーソフトを使いたいところですが、会社側からフリーソフトのインストールは禁止されており使えません。
本やサイトをあちこち見てみて、素人なりにバッチを作ってみましたが、うまく動きません^^;

具体的な例で言いますと、

・変換前のファイル名
001.tif
001.txt
002.tif
002.txt
003-1.tif
003-1.txt
003.tif
003.txt
.
.
.
--------
R01-00001.tif
R01-00001.txt
R01-00002.tif
R01-00002.txt
R01-00003.tif
R01-00003.txt
.
.
.

●変換後のファイル名
100017.tif
100017.txt
100018.tif
100018.txt
100019.tif(元:003.tif)
100019.txt(元:003.txt)
100020.tif(元:003-1.tif)
100020.txt(元:003-1.tif)
.
.
.
--------
110001.tif
110001.txt
110002.tif
110002.txt
110003.tif
110003.txt
.
.
.

ファイル名は他に「R2-001」のようなパターンもあります。
このようなことは可能でしょうか?
バッチだけで実行する方法の他に、もしエクセルなどで任意の連番を作り、それをテキストで書き出して、その名前に変更するという方が早ければ、そのテキストファイルの書き出し方も教えて頂けると、大変助かります。
厚かましいお願いで恐縮ですが、1週間くらいこれで悩んでいるので、ご教授頂ければ幸いです。
どうかよろしくお願い致します。
1674.
Re:ファイル名を任意の連番で書き換えたい
2007年02月24日(土) 22時58分
YanaKen◆c0rnJ1Q=
meitakaさん こんにちは。

>やりたいことは、規則性がバラバラな大量のファイルの名前を、6桁の任意の数字から始まる連番のファイル名に変更したいのです。

 規則性のないものを一括でやるというのは矛盾した話ですから、いわゆる「チカラワザ」的方向にどうしてもなると思います。その意味で「Excelを使う」というのは悪くない考えだと思います。

 たとえば、
A       B       C
ren     001.*   100017.*
ren     002.*   100018.*
。。。
 ……のようなバッチ処理そのものをExcelの表形式で作ってしまえば、あとはたとえば、
・「メモ帳」などのテキストエディタにコピー&ペーストする。
・拡張子を.batとした適当な名前で、実行したいフォルダ上にセーブする。
・それを実行する。
 ……というステップで済むと思われます。

YanaKen

1675.
Re:ファイル名を任意の連番で書き換えたい
2007年02月25日(日) 16時41分
scriptwriter
試してないけど、こんな感じかな
set n=100000
for %%1 in (*) do (
set /a n+=1
call rename %%1 %%n%%%~x1
)

1676.
Re:ファイル名を任意の連番で書き換えたい
2007年02月25日(日) 22時55分
YanaKen◆c0rnJ1Q=
>set n=100000
>for %%1 in (*) do (
>set /a n+=1
>call rename %%1 %%n%%%~x1
>)

 ワイルドカード一発のかたちだと、
>100019.tif(元:003.tif)
>100019.txt(元:003.txt)
>100020.tif(元:003-1.tif)
>100020.txt(元:003-1.tif)
 もとの質問の上記部分は、
100019.tif(元:003-1.tif)
100019.txt(元:003-1.txt)
100020.tif(元:003.tif)
100020.txt(元:003.tif)
 ……と、例示された(望ましい?)処理結果とは逆順になってしまうものと思います。
 むろん、質問で例示された変更順序がとくに絶対的というわけではない場合は、そういった「一発」系のほうが美しいとは思います(^^;。

YanaKen

1677.
Re:ファイル名を任意の連番で書き換えたい
2007年02月26日(月) 10時46分
meitaka◆KQpYi+g=
>>set n=100000
>>for %%1 in (*) do (
>>set /a n+=1
>>call rename %%1 %%n%%%~x1
>>)
>
> ワイルドカード一発のかたちだと、
>>100019.tif(元:003.tif)
>>100019.txt(元:003.txt)
>>100020.tif(元:003-1.tif)
>>100020.txt(元:003-1.tif)
> もとの質問の上記部分は、
>100019.tif(元:003-1.tif)
>100019.txt(元:003-1.txt)
>100020.tif(元:003.tif)
>100020.txt(元:003.tif)
> ……と、例示された(望ましい?)処理結果とは逆順になってしまうものと思います。
> むろん、質問で例示された変更順序がとくに絶対的というわけではない場合は、そういった「一発」系のほうが美しいとは思います(^^;。
>
>YanaKen
>


返信が遅くなりまして、すみません(><)。
YanaKen様、scriptwriter様、ご教授本当にありがとうございます。

YanaKen様のおっしゃるとおり、003と003-1の並びは、OSの名前順だと003-1が先にきてしまい、思ってる順にならないのが悩みの種のひとつでした。
YanaKen様に教えて頂いた方法は、思いつかなかったので目からウロコでした。
試したところ、うまくいきました。

ディレクトリによっては、003-1のようなファイル名のないところもあるので、そこはscriptwriter様に教えて頂いた方法で、一発変換でやりたいと思います。
(自分で考えたのは、知恵がなくて2つのバッチに分けて変な処理してたりするので…^^;)

これでやっと2週間以上の苦しみから解放されます(笑)。
お二人様とも、本当にありがとうございましたm(_ _)m
1678.
Re:ファイル名を任意の連番で書き換えたい
2007年02月26日(月) 12時56分
scriptwriter
要件を
>やりたいことは、規則性がバラバラな大量のファイルの名前を、6桁の任意の数字から始まる連番のファイル名に変更したいのです。
とした場合です。

もし順序性を持たせるなら、
for /f %%1 in ('dir /b /on') do (
とか。

txtとtifをペアで同じ番号にするとかの要件があればまたそれはそれです。
 
 


カテゴリー「DEL,ERASE,REN…ファイル削除/復活/移動/名前の変更」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2007年02月22日 12:57に投稿されたエントリーのページです。

ひとつ前の投稿は「フォルダ内のデータを日付ごとに分別するには」です。

次の投稿は「名前に空白を含むサービス名のチェック」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート