使用批处理脚本重命名所有文件夹名称
问题描述:
如何使用批处理脚本重命名文件夹名称?我需要重命名文件名称,如:使用批处理脚本重命名所有文件夹名称
a Filename1
b filename2
to
A
B
即使其大写和子字符串只对初始部分。 到目前为止,我想出了:
@echo "Renaming file"
for /D %%f in (C:\REN\*) do rename "%%f" "%%~nxf_myname"
pause
答
我假设你真的想重新命名在C文件夹:\ REN \,而不是文件。
我还假设你的意思是“最初的部分”,直到第一个空格字符。如果这是正确的,那么您想使用FOR/F将名称解析为令牌。
SET搜索和替换功能对搜索部分不区分大小写。
我为原始名称和新名称创建变量,并且为了防止文件夹名称包含!
字符而打开和关闭延迟扩展。如果值包含!
且延迟扩展已启用,则变量会损坏。
@echo off
setlocal disableDelayedExpansion
echo Renaming folders
for /d %%F in (C:\REN\*) do (
for /f "eol= " %%A in ("%%~nxF") do (
set "name=%%F"
set "newName=%%A"
setlocal enableDelayedExpansion
for %%C in (
A B C D E F G H I J K L M
N O P Q R S T U V W X Y Z
) do set "newName=!newName:%%C=%%C!"
ren "!name!" "!newName!"
endlocal
)
)
那么你想只取第一个字符并转换为大写?请指定_exact_重命名模式... – 2012-07-13 11:50:43
那它是哪一个?你想重命名文件夹或文件吗? – dbenham 2012-07-13 13:27:37
@EitanT我想在空格之前只对字母进行重命名,以便在空格之后包含空格并删除其他字母 – kinkajou 2012-07-16 01:27:38