0

我正在寻找一种批量重命名多个文件夹的方法。基本上,我需要用前导零填充它并使其成为 6 位数

例子:

123 ---> 000123

22 ----> 000022

5678 --> 005678

我知道该怎么做的唯一方法是:

for /f %f in ('dir /b') do ren "%f" "0%f"  but this only pads it with 1 zero

请帮忙。任何方向表示赞赏谢谢

4

1 回答 1

0

在批处理文件中可以使用以下代码:

@echo off
setlocal EnableExtensions EnableDelayedExpansion
for /F "delims=" %%I in ('dir /AD-L /B 2^>nul ^| %SystemRoot%\System32\findstr.exe /R /X "[0123456789][0123456789]*"') do (
    set "FolderName=00000%%I"
    set "FolderName=!FolderName:~-6!"
    if not !FolderName! == %%I ren %%I !FolderName!
)
endlocal

要了解使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。

  • dir /?
  • echo /?
  • endlocal /?
  • findstr /?
  • for /?
  • if /?
  • ren /?
  • set /?
  • setlocal /?

阅读有关使用命令重定向运算符2>nul的 Microsoft 文档,了解和的说明|。当 Windows 命令解释器在执行命令FOR之前处理此命令行时,重定向运算符>|必须^FOR命令行上使用脱字符进行转义,以便解释为文字字符背景和命令行作为附加参数附加。dirfindstrcmd.exe /c'

于 2021-11-04T07:30:33.293 回答