通过windows cmd自动重命名多个子文件夹中的多个文件

通过windows cmd自动重命名多个子文件夹中的多个文件

我正在通过 Windows cmd 使用以下脚本自动将位于/源自多个子目录的多个文件复制到单个目录:

cd /d "C:\example files\various\raw files"

for /r %d in (*) do copy "%d" "C:\example files\conso"

如果我想覆盖重复的文件,我会在脚本末尾加上 \y。

然而,我的困境是我想不是覆盖这些文件,而不是自动重命名它们。

Windows cmd 中是否有其他命令会尝试复制这些文件,如果发现重复项则尝试重命名它们?

答案1

这是一个批处理文件。我正在使用命令的备份功能。程序可以在以下文件夹cp下找到\usr\local\wbin这个压缩文件(UnxUtils 项目)。将可执行文件提取到您的%PATH%.

@echo off
setlocal EnableDelayedExpansion

rem Set VERSION_CONTROL variable, read by `cp' *nix command
set VERSION_CONTROL=t

rem Define origin and destination folders
set "_orig=C:\example files\various\raw files"
set "_dest=C:\example files\conso"

for /r "%_orig%" %%F in (*.*) do cp -b "%%F" "%_dest%"
for %%N in ("%_dest%\*.*") do (
    set _ext=%%~xN
    if "!_ext:~-1!" == "~" (
       set "_name=%%~nN"
       ren "%%N" "!_name:~0,-4!(!_ext:~-2,1!)!_name:~-4,4!"
    )
)

相关内容