• 締切済み

BATです。

あるディレクトリ,,,仮にC:\DNとします。このディレクトリ内のすべてのファイルを連番の名称 0001,0002,,,とリネームまたは名称を変えて別ディレクトリにコピーでもよいのですが,BATファイルの書き方がわかりません。 windowsのGUI操作で同等の処理が可能ならそれでも結構です。(それの方がもっとよいのですが) 教えてください。

みんなの回答

回答No.3

えっと…… PowerShellだのbatじゃ絶望的だのって 他の回答者さん言ってますけど、 普通に単純に下記じゃダメなんですかね? ――――――――――――――ここから――――――――――――――― @echo off setlocal enabledelayedexpansion pushd "C:\DN" set /a cnt=0 for /f "usebackq delims=" %%f in (`dir /b /a-d`) do ( set /a cnt+=1 set no=00!cnt! set no=!no:~-3! set fileName=%%f set newFileName=!no!!fileName! ren "!fileName!" "!newFileName!" ) echo fin pause exit ――――――――――――――ここまで――――――――――――――― これじゃなんかマズいっすか? そりゃ、Unicodeは非対応ですけど……。

  • kteds
  • ベストアンサー率42% (1882/4440)
回答No.2

win7はpowershell を標準装備していますので 下記のようにpowershell で実行すれば簡単に実現できます。(BATを含んでBATよりも強力なツールです) 例は e:\wk1 フォルダのすべてのファイルについて 番号 1から始まる .txt ファイルに名前変更しています。 自分の環境にあわせて適当に応用すればいいです。 $nr = 1 foreach ($i in Get-ChildItem e:\wk1\* ) { Rename-Item $i -NewName(($nr++).ToString("0000")+".txt")}

  • asciiz
  • ベストアンサー率70% (6803/9674)
回答No.1

GUI操作でそのような操作方法はありませんし、バッチファイル内で使える変数(=環境変数)は文字列であり、数値を扱えないので、そのような作業をプログラミングするのに絶望的なまでに向いていません。 普通にファイルコピー後、連番リネームソフトを使うのが良いと思います。 ↓ >Vector ソフトウェア検索:リネーム >http://search.vector.co.jp/vsearch/vsearch.php?key=%83%8A%83l%81%5B%83%80&kanji=shift-jis