Я использую следующий сценарий через 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 ответ1

0

Вот командный файл. Я использую функцию резервного копирования команды 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!"
    )
)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .