Пакетный файл: переместить файл и, если файл уже существует, сохранить оба с переименованием его по числовой последовательности - PullRequest
0 голосов
/ 23 ноября 2018

Я уже нашел решение для этого, но сейчас мне нужно найти кратчайшую командную строку.Ситуация: Файл «C: \ Image.jpg» переместится в «D: \».Если «Image.jpg» существует в «D: \», переименуйте его и переместите в «Image01.jpg».Эта команда зацикливается.Вот моя командная строка пакета:

:start
IF EXIST "D:\Users\00002829\Pictures\Image.jpg" IF EXIST "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image03.jpg" (
    move "D:\Users\00002829\Pictures\Image.jpg" "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image04.jpg"
)
IF EXIST "D:\Users\00002829\Pictures\Image.jpg" IF EXIST "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image02.jpg" (
    move "D:\Users\00002829\Pictures\Image.jpg" "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image03.jpg"
)
IF EXIST "D:\Users\00002829\Pictures\Image.jpg" IF EXIST "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image01.jpg" (
    move "D:\Users\00002829\Pictures\Image.jpg" "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image02.jpg"
)
IF EXIST "D:\Users\00002829\Pictures\Image.jpg" (
    move "D:\Users\00002829\Pictures\Image.jpg" "D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray\Image01.jpg"
)
TIMEOUT /t 3
goto start

Эта команда ограничена только 3 раза переименованием и перемещением файла.Thx

1 Ответ

0 голосов
/ 23 ноября 2018

Просто зациклите его и найдите все файлы, скопируйте их и переименуйте, если они существуют.

@echo off
setlocal disableDelayedExpansion
set "source=D:\Users\00002829\Pictures"
set "target=D:\Users\00002829\Pictures\SFSAPP\VChip_X-Ray"

md "%target%"
set /a cnt=0
for /r %%F %target% in (Image.jpg) do if "%%~dpF" neq "%target%\" (
  if exist "%%F" (
  if exist "%target%\%%~nxF" (
    set /a cnt+=1
    set "full=%%F"
    set "name=%%~nF"
    set "ext=%%~xF"
    setlocal enableDelayedExpansion
    copy "!full!" "!target!\!name!!cnt!!ext!" >nul
    endlocal
  ) else copy "%%F" "%target%" >nul
 )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...