繁体   English   中英

使用批处理脚本递归重命名文件夹中的文件和子文件夹

[英]recursively rename files AND subfolders in a folder using batch script

我知道也有类似的职位,但没有涵盖我需要的职位。 我需要重命名给定文件夹的所有文件和子文件夹,并使它们大写。 我发现这篇文章很棒,但只包含文件或子文件夹:

重命名文件夹中的所有文件为大写

我尝试做嵌套的FOR毫无喜悦。 根据手册,/ R假定会遍历文件夹,但是它什么也没做。 尝试/ D / R也没有运气。 所以我希望使用如下所示的内容:

@echo off
setlocal enableDelayedExpansion

pushd C:\MyFolder

for /R /D %%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

有任何想法吗?

解析静态列表dir /B /S *以获取所有文件子文件夹。

阅读完整for /? 有关%%~nxf说明。

@echo off
setlocal enableDelayedExpansion

pushd C:\MyFolder

for /F "delims=" %%f in ('dir /B /S *') do (
   set "filename=%%~nxf"

   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
)
popd
endlocal

ren /? 以及:

Renames a file or files.

RENAME [drive:][path]filename1 filename2.
REN [drive:][path]filename1 filename2.

Note that you cannot specify a new drive or path for your destination file.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM