【发布时间】:2016-09-02 22:27:02
【问题描述】:
这是我尝试过的:
@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)时修改了子目录。因此,以下笨重的代码确实有效,但有一个例外。
@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 文件是否正在使用?因为这就是该错误消息所暗示的内容。
-
关闭
echo off,看看你在做什么奇怪的事情。
标签: batch-file windows-xp