【发布时间】:2014-08-08 08:27:43
【问题描述】:
有没有办法用批处理文件将特定文件夹中的所有文件重命名为大写?
我找到了这段代码。但它将文件重命名为小写。如何修改它以重命名为大写?
for /f "Tokens=*" %f in ('dir /l/b/a-d') do (rename "%f" "%f")
【问题讨论】:
标签: file batch-file file-management
有没有办法用批处理文件将特定文件夹中的所有文件重命名为大写?
我找到了这段代码。但它将文件重命名为小写。如何修改它以重命名为大写?
for /f "Tokens=*" %f in ('dir /l/b/a-d') do (rename "%f" "%f")
【问题讨论】:
标签: file batch-file file-management
@echo off
setlocal enableDelayedExpansion
pushd c:\some_dir
for %%f in (*) do (
set "filename=%%~f"
for %%A 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 "filename=!filename:%%A=%%A!"
)
ren "%%f" "!filename!" >nul 2>&1
)
endlocal
【讨论】:
!
这会将目录中的所有文件名转换为大写而不影响扩展名。
rename 's/^([^.]*)\.(.*)$/\U$1\E.$2/' *
【讨论】:
这也会将扩展名设为大写......这对我来说是个问题......所以这就是我如何将扩展名“保持”为小写......
@echo off
setlocal enableDelayedExpansion
pushd "\...\PATH_TO_FOLDER\"
for %%f in (*) do (
set "filename=%%~f"
for %%A 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 "filename=!filename:%%A=%%A!"
)
ren "%%f" "!filename!" >nul 2>&1
)
for /r "\...\PATH_TO_FOLDER\" %%G in (*.PDF) do ren "%%~G" *.pdf
endlocal
根据需要将 \\...\PATH_TO_FOLDER\ 替换为您的路径,将 .PDF/.pdf 替换为您的文件扩展名。
【讨论】:
set "filename=%%~nf" 和更高版本的ren "%%f" "!filename!%%~xf" >nul 2>&1。不需要您的 for /r 循环。说明_%%~nf 给出的名称不带扩展名,%%~xf 只是扩展名。