を持つファイルを含むすべてのフォルダの名前を変更するバッチは、ここに私が試したものです:セットのフォルダ名は=フォルダ名:! =特定のパターン
@echo off
REM Prefix zz_ to folders containing episodes with zz_
setlocal enabledelayedexpansion enableextensions
for /r "G:\itunes\Podcasts\" %%f in (zz_*.mp3) do (
set N=%%~pf~
set N=!N:\itunes\Podcasts\=!
set N=!N:\=!
if exist %%f ren "g:%%~pf" "zz_!N!"
)
pause
しかし、私はエラーメッセージを受信:プロセスがあるため、ファイルにアクセスすることはできませんが他のプロセスによって使用されています。 私はプログラマーではない、ちょうどカット&ペーストちょっと人、だから助けてくれてありがとう。
だから私はディレクトリ(g:\ itunes \ podcasts)を再帰的に処理しようとしている間、サブディレクトリを変更しています。したがって、1つの例外を除いて、次の厄介なコードが機能します。
@echo off
setlocal enabledelayedexpansion enableextensions
REM Prefix zz_ to folders containing episodes with zz_
for /r "G:\itunes\Podcasts\" %%f in (zz_*.mp3) do (
set foldername=%%~pf
set foldername=!foldername:~17!
set foldername=!foldername:\=!
if exist %%f echo if exist %%f ren "g:%%~pf" "zz_!foldername!" >>g:\trash.bat
)
call g:\trash.bat
del g:\trash.bat
pause
感嘆符を含むファイル名は扱いません。何かご意見は?
.mp3ファイルは使用中ですか?これは、そのエラーメッセージが示唆しているものです。 – SomethingDark
'echo off'をオフにして、あなたがやっている奇妙なことを見てください。 –