Переміщення файлів без конфліктів [дублікат]


1

На це питання вже є відповідь тут:

У мене багато файлів, folder1і я хотів би їх перемістити folder2. Вже є невелика кількість файлів folder2(сотня порівняно з кількома тисячами дюймів folder1), і я хотів би перемістити всі файли з, folder1за folder2винятком випадків, коли є конфлікт імен файлів. (У цей момент я вивчу решту файлів окремо і пропущу / модифікую / замінюю за потребою.)

Чи є хороший спосіб це зробити? Я в Windows 10, але я можу використовувати bash через MinGW, якщо це зручніше.

Це як пакетне копіювання файлів і переміщення без перезапису, за винятком того, що він включає тисячі файлів замість одного файлу.


@ Ƭᴇcʜιᴇ007 Прийнята відповідь переміщує лише один файл, що сильно відрізняється від мого випадку використання. (Я не заперечував би як закритий як дублікат, але це не здається мені дублікатом.)
Чарльз

З прийнятої відповіді: "Цікаво, що, здається, працює і з маятниковими картами". яку вона повинна. :)
Ƭᴇcʜιᴇ007

Я не розумію проблеми з проблемою. x) Провідник повинен переміщатись та повідомляти вас, коли він потрапить у файл, який існує у цільовому місці. Потім ви вирішите не переміщувати його, а також застосувати цю дію до всіх запитів одного типу.
Даніель Б

Відповіді:


1

Я хочу перемістити всі файли з папки1 в папку2, якщо не існує конфлікту імен файлів.

Використовуйте наступний пакетний файл (розташований у батьківському каталозі folder1та folder2.

MovesFiles.cmd:

@echo off 
setlocal enabledelayedexpansion
for /f %%f in ('dir /b folder1') do (
  if not exist folder2\%%~nxf move folder1\%%~nxf folder2 
  )
endlocal

Примітки:

  • Будь-які файли, де є конфлікт імен (тобто вже існують у folder2), залишаються в folder1.
  • Усі інші файли переміщені.

Приклад використання:

F:\test>dir /b folder1
1.txt
2.txt
3.txt
4.txt
5.txt

F:\test>dir /b folder2
2.txt
4.txt

F:\test>MoveFiles.cmd
        1 file(s) moved.
        1 file(s) moved.
        1 file(s) moved.

F:\test>dir /b folder1
2.txt
4.txt

F:\test>dir /b folder2
1.txt
2.txt
3.txt
4.txt
5.txt

Подальше читання

  • Індекс AZ командного рядка Windows CMD - відмінна довідка для всіх речей, що стосуються cmd-рядка Windows.
  • for / f - команда Loop проти результатів іншої команди.
  • dir - Відображення списку файлів і папок.
  • Параметри - Аргумент командного рядка (або параметр) - це будь-яке значення, передане в пакетний сценарій.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.