如何使用批处理脚本重命名文件夹名称?我需要重命名文件名,如:
a Filename1
b filename2
to
A
B
即仅将其设为大写和子字符串到初始部分。到目前为止,我想出了:
@echo "Renaming file"
for /D %%f in (C:\REN\*) do rename "%%f" "%%~nxf_myname"
pause
如何使用批处理脚本重命名文件夹名称?我需要重命名文件名,如:
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
)
)