フォルダ名の一括変更バッチファイル

Moodleの課題をフォルダ付きでダウンロードした場合の、処理バッチです。

フォルダ付きの場合、フォルダ名が結構ややこしいことになっています。

本学の場合は、ここに学籍番号や氏名が入っていて、わかりやすいのですが、続けてMoodle内での識別IDやら「_assignsubmission_file_」がある。これを取りたい。

それで次のようなバッチファイルを作りました。
遅延環境変数って何??ですが、ともかくこれで目的は達しています。

@echo off
rem forループ内で変数を扱うには遅延環境変数の展開を有効にする
rem 遅延環境変数の展開は%の代わりに!を使う
setlocal ENABLEDELAYEDEXPANSION

for /d %%i in (*) do (
 echo %%i
 set fname=%%i
 rem 0文字目から7文字分を取り出す
 set fname=!fname:~0,7!
 echo !fname!
 ren "%%i" !fname!
)
exit /b

今回は先頭の7文字にしたかったので、”:~0,7”としました。

Excelを使って各行にrenコマンドを入れるという強引な手法もあるようですが、さすがに美しくない。でも、これだけのバッチに半日かかかってしまった( ;∀;)。

同様にファイル名を変更するときは、こちら。

@echo off
rem forループ内で変数を扱うには遅延環境変数の展開を有効にする
rem 遅延環境変数の展開は%の代わりに!を使う
setlocal ENABLEDELAYEDEXPANSION

for %%b in (*) do (
echo %%b
set fname=%%b
rem 0文字目から8文字分を取り出す
set fname=!fname:~0,8!
echo !fname!

rem 拡張子を取り出す
set ad=%%~xb
echo !ad!
ren "%%~nxb" "!fname!!ad!"
)
exit /b