我正在寻找一种批量重命名多个文件夹的方法。基本上,我需要用前导零填充它并使其成为 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
请帮忙。任何方向表示赞赏谢谢
我正在寻找一种批量重命名多个文件夹的方法。基本上,我需要用前导零填充它并使其成为 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
请帮忙。任何方向表示赞赏谢谢
在批处理文件中可以使用以下代码:
@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命令行上使用脱字符进行转义,以便解释为文字字符背景和命令行作为附加参数附加。dir
findstr
cmd.exe /c
'