我想将文件重命名为LastFolderName_ImageName.jpg。 (例如,如果Figure1.jpg位于e:\study\pubpmc\test\extracted\folder1中, 我希望它被重命名为folder1_Figure1.jpg)
因此,我需要从文件路径中取出最后一个文件夹的名称。由于这是我的第一次批处理脚本编写,我很难做到这一点。
我在谷歌上搜索了相关代码,但似乎无法正常运行。
你能帮我看看哪里有问题吗? 谢谢! :)
@echo off
cd /D "e:\study\pubpmc\test\extracted"
for /r %%f in (*.jpg) do (
set mydir=%%~dpf
set mydir=%mydir:\=;%
for /f "tokens=* delims=;" %%i in (%mydir%) do call :LAST_FOLDER %%i
goto :EOF
:LAST_FOLDER
if "%1"=="" (
@echo %LAST%
goto :EOF
)
set LAST=%1
SHIFT
goto :LAST_FOLDER
)
"delims ="
而不是"tokens = *"
,因为名称可能以空格开头。 3) 目前编写的默认值eol =;
如果文件名以;
开头,将会导致问题。 - dbenhamrename
命令目标中的驱动器和路径)。2) 和3) 被毫无保留地接受。然而,我总是欣赏您启发性和友好的批评... - JosefZenable
和extensions
之前的部分,以及结尾处的expansion
,就得出了错误的结论。 - dbenham(..)
循环内插入::
注释的警告,我给予加一分。这个问题曾经让我犯过错误(但并不是太多次!)。批处理文件没有产生错误消息,但是已经损坏了! - rossmcm