Windows 通过 CLI 批量重命名中间文件名?

Sab*_*ina 13 windows command-line rename batch-file

原始文件

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt
Run Code Online (Sandbox Code Playgroud)

期望输出

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt
Run Code Online (Sandbox Code Playgroud)

单个文件可以很容易地重命名ren

ren "File 2 - Example.txt" "File 02 - Example.txt"
Run Code Online (Sandbox Code Playgroud)

是否可以使用 Windowsrenrename工具对其进行批量重命名?

Lot*_*ngs 17

这个 PowerShell one liner 会将文件名中的所有数字扩展到两个位置.PadLeft(2,'0'):(
并保留更多位置不变的数字)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}
Run Code Online (Sandbox Code Playgroud)

主题,包装在一个 cmd 行/批处理文件中:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"
Run Code Online (Sandbox Code Playgroud)

为了在执行命令之前安全起见,请附加

  • -Confirm 在重命名之前询问
  • -WhatIf它列出了它将在没有参数的情况下执行的所有重命名

就在最后一个面前 "


Dav*_*ill 13

是否可以使用 Windows ren 或重命名工具对其进行批量重命名?

是的,但它需要一个批处理文件。

测试.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal
Run Code Online (Sandbox Code Playgroud)

例子:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free
Run Code Online (Sandbox Code Playgroud)

进一步阅读