- 締切済み
フォルダ名をファイル名の頭に追加するバッチ
社内の規定でパソコンにフリーソフトをインストールができません。 フォルダ内の複数あるファイル名の頭にフォルダ名を付け足すバッチファイルを作る事は可能でしょうか? 例 フォルダ名 ABC ファイル名 123.jpg 変更後 ABC123.jpg フォルダをバッチファイルにドラッグ&ドロップでファイル名を変更出来るようなものが有ればとても助かります。 わかる方がいましたら教えて頂きたいです。 宜しくお願いします。 使用するパソコンのOSはWindows7です。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
フォルダをドラッグ&ドロップした場合に対応しました。 @echo off :loop if "%~1" == "" goto end set A=%~a1 if %A:~0,1%==d goto folder set A=%~p1 set B=%~nx1 set A=%A:~0,-1% for %%C in (%A%) do ( ren %1 %%~nC%B% ) :next shift goto loop :folder for /R %1 %%D in (*.*) do call %0 %%D goto next :end exit /B 注意して欲しいのは「直下のフォルダ名がファイル名の頭に付く」という事です。 例えば C:\test\a.jpg C:\test\b.jpg C:\test\c.jpg C:\test\d.jpg C:\test\folder\a.jpg C:\test\folder\b.jpg C:\test\folder\c.jpg C:\test\folder\d.jpg C:\test\folder\temp\a.jpg C:\test\folder\temp\b.jpg C:\test\folder\temp\c.jpg C:\test\folder\temp\d.jpg となっていた場合、結果は C:\test\testa.jpg C:\test\testb.jpg C:\test\testc.jpg C:\test\testd.jpg C:\test\folder\foldera.jpg C:\test\folder\folderb.jpg C:\test\folder\folderc.jpg C:\test\folder\folderd.jpg C:\test\folder\temp\tempa.jpg C:\test\folder\temp\tempb.jpg C:\test\folder\temp\tempc.jpg C:\test\folder\temp\tempd.jpg となります。 このように、1~4番目は「test」が、5~8番目は「folder」が、9~12番目は「temp」が付加されます。「全部、testが付く」ではありませんので、ご注意下さい。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
>試してみましたがフォルダ内のファイル名は変わっていませんでした。 「フォルダ」をドラッグ&ドロップしても、何も起きません(エラーになります) このバッチは「ファイル(複数選択可)」をドラッグ&ドロップするように作ってあります。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
以下の内容をバッチファイルにして、デスクトップ等に置いて、そのバッチファイルの上にファイルをドラッグ&ドロップして下さい。 @echo off :loop if "%~1" == "" goto end set A=%~p1 set B=%~nx1 set A=%A:~0,-1% for %%C in (%A%) do ( ren %1 %%~nC%B% ) shift goto loop :end
補足
ありがとうございます! 試してみましたがフォルダ内のファイル名は変わっていませんでした。
- fmxBeem
- ベストアンサー率54% (325/599)
1.下記をコピーしてメモ帳などにペースト、ファイル名を「rename.bat」として保存して下さい。 dir /a:d "%~1" if %errorlevel%.==1. call :foldersyutoku "%~dp1" if %flag%.==1. goto syori set name=%~nx1 goto :EOF :syori ren %1 "%name%%~nx1" REM ren %1 "%name%%~nx1" shift If %1.==. goto :EOF set flag=0 goto home :foldersyutoku pushd %1 Call "%~f0" "%CD%" set flag=1 2.rename.batにjpgファイルをドラッグ&ドロップすれば先頭に親フォルダ(ABC)名を付加してリネームします。 念のため、テストしてみてくださいね(^^)
お礼
早速の回答ありがとうございます。 ファイルをドラッグ&ドロップで複数あるjpgファイルの一枚にファイル名が付け足され事は確認出来ました。 jpgファイルが複数格納されているフォルダをドラッグ&ドロップでファイル内の全てのjpgファイルの頭にフォルダ名を付け足す事は可能ですか? 宜しくお願い致します。
お礼
わかりました。 やってみます。 ありがとうございました!