将多个子文件夹中的所有文件移动到一个文件夹中

将多个子文件夹中的所有文件移动到一个文件夹中

基本上是这样的我使用FOR /R "C:\Source Folder" %i IN (*.png) DO MOVE "%i" "C:\Staging Folder"它,它工作得很完美,除了我拥有的所有 .png 文件都具有相同的名称,因此当我执行它时,它会不断询问我是否要覆盖它,我该如何使输出名称以增量后缀显示?

答案1

您只需要添加一个计数器。我一开始10000只取了最后四位数字(结果文件类似originalname-0001.png等等。如果 9999 的最大值看起来有点紧,只需将其扩展即可)

@echo off
setlocal enabledelayedexpansion
set counter=10000
FOR /R "C:\Source Folder" %%i IN (*.png) DO (
  set /a counter+=1
  MOVE "%%i" "C:\Staging Folder\%%~ni-!counter:~-4!%%~xi"
)

相关内容