Скрипт для копирования файла из одной папки в другую

Обновлено: 21.11.2024

У меня есть папка для хранения в сети, в которой все пользователи будут хранить свои активные данные на сервере. Теперь этот сервер будет заменен новым из-за проблемы с местом, поэтому мне нужно скопировать файлы подпапок из старой папки хранилища сервера в новую папку хранилища сервера. У меня ниже ex:

из \Oldserver\storage\data & files в \New server\storage\data & files.

Полагаю, вы говорите о среде Windows? - Alan Plum
@pluma Пакетные файлы имеют расширение .bat. Да, они работают только в Windows. - Хьюго М. Зулета
@HugoM.Zuleta, я знаю о файлах .bat. Но «пакетный файл» не обязательно гарантирует среду Windows. Использование этого термина предшествует Windows (как и файлы .bat), и я даже видел, как новички используют этот термин для обозначения «скриптов оболочки» в средах * nix. - Алан Плам
@pluma Я согласен, и это в основном потому, что они ссылаются на пакетные операции, выполняемые инструментами сценариев их ОС. - Хьюго М. Зулета

xcopy.exe, безусловно, ваш друг. Он встроен в Windows, поэтому ничего не стоит.

Просто xcopy /s c:\source d:\target

Возможно, вам захочется кое-что изменить; некоторые из параметров, которые мы также добавляем, включают следующее:

  • /s/e - рекурсивное копирование, включая копирование пустых каталогов.
  • /v — добавьте это, чтобы сверить копию с оригиналом. медленнее, но для параноиков.
  • /h — копировать системные и скрытые файлы.
  • /k - копировать атрибуты только для чтения вместе с файлами. в противном случае все файлы становятся доступными для чтения и записи.
  • /x — если вам нужны разрешения, вам может понадобиться /o или /x .
  • /y – не выдавать запрос перед перезаписью существующих файлов.
  • /z — если вы считаете, что копирование может завершиться ошибкой, и вы хотите перезапустить его, используйте это. Он помечает каждый файл по мере его копирования, поэтому вы можете повторно запустить команду xcopy, чтобы продолжить с того места, где она была остановлена.

Если вы считаете, что xcopy может завершиться неудачно на полпути (например, при копировании через нестабильное сетевое соединение) или что вам нужно остановить его и продолжить позже, вы можете использовать xcopy /s/zc:\source д:\цель .

Надеюсь, это поможет.

рекомендуется цитировать ваш источник и целевую панель… - VDP
@Iavinio Запрашивает файл или каталог при копировании архива. Есть ли способ подавить это? - Bitterblue
/i - Если пункт назначения не существует и копируется более одного файла, предполагается, что пункт назначения должен быть каталогом. - lavinio
Как скопировать один файл из каталога? - Charan Raju C R
Чтобы обойти приглашение «файл или каталог», выполните команду следующим образом… echo f | xcopy /s /f srcfile файл назначения - wintondeshong

Для ясности: когда вы используете xcopy /s c:\source d:\target , поставьте "" вокруг c:\source и d:\target, иначе вы получите ошибку.

т.е. если в пути есть пробелы, т.е. если у вас есть:

но не обязательно, если у вас есть:

Кавычки помогли ;) спасибо, я также использовал /Y для замены файла, если он существует :) Пример: ´´´xcopy /s “c:\source” “d:\target” /Y`` ` – Жоэль Карнейро

Мой любимый способ резервного копирования данных:

/mir для зеркала. Вы также можете использовать /mov для перемещения файлов. Он воспроизводит точно такую ​​же папку. Он может удалять/перезаписывать файлы по мере необходимости. Отлично работает для меня. Это быстрее, чем xcopy/copy. Он также встроен в Windows.

Поддерживаю. Это очень быстро. намного быстрее, чем xcopy - Ike
Есть ли способ рекурсивно удалить thumbs.db, подобный этому? - дура

Возможно, вы захотите взглянуть на XCopy или RoboCopy, которые являются довольно комплексными решениями практически для всех операций копирования файлов в Windows.

Похоже, что RoboCopy лучше, чем XCopy, потому что xcopy запрашивает выбор файла или папки. И я не могу отказаться от него. Он ДОЛЖЕН работать в полностью автоматическом режиме. - Bitterblue
@mini-me Я знаю, что уже очень поздно, однако я не могу найти тот же соответствующий переключатель. В итоге я прибегнул к тому, чтобы создать пустой файл с тем же именем, в которое я копирую, а затем перезаписать его. Если файл уже существует, он не спрашивает, является ли он файлом или каталогом. (Если вам нужен автоматический каталог, вы можете добавить «/» к пути, и он сделает это). Надеюсь, это поможет будущим людям! - Tom C
@Eve Для справки, echo f | xcopy источник назначения /y сделает это автоматически. Он присваивает всем вопросам букву «f» в качестве ответа. Он также будет передавать запросы на перезапись (я думаю, f принимается как да). - ndm13

Чтобы обойти запрос «укажите имя файла или имя каталога в целевом объекте (F = файл, D = каталог)?» с помощью xcopy, вы можете сделать следующее…

эхо е | xcopy /f /y srcfile целевой файл

или для тех из нас, кто просто копирует большие подструктуры/папки:

используйте параметр /i, указывающий, что пунктом назначения должен быть каталог, если копируется более одного файла

(эхо "f" для файлов или "D" для каталогов) - JinSnow
пытается сделать это сейчас, и это просто не работает - я всегда получаю подсказки при попытке скопировать один файл в другой каталог.Использование Win 10, если это вообще влияет на него echo f | xcopy /f /y «My.dll» «C:\myFolder\My.dll». Я пробовал это с комбинацией других переключателей, но безрезультатно (с большой буквы F) - Prof
Мужик мой! Спасибо - Вифсимстер

если вы хотите скопировать файл, не используя абсолютный путь, относительный путь, другими словами:

не забудьте написать антислеш в пути, А НЕ косую черту (^^)

PS: можно получить абсолютный путь, используя подстановочные знаки, называемые «пакетными параметрами»

Посмотрите на инструмент Windows NASBackup на основе rsync. Будет бонусом, если вы знакомы с командами rsync.

В этом сообщении блога я опишу, как создать пакетный файл для копирования файлов из одной папки в другую. Пакетный файл — это текстовый файл, содержащий последовательность команд для операционной системы компьютера.

Пакетный файл сценария имеет набор или пакет набора команд, поэтому он называется пакетным файлом. Расширение файла сценария bat: .bat или .cmd.

ПРОМОКОД - PROMOTION25

Если вы новичок в пакетном сценарии и хотите узнать, как создать пакетный файл, ознакомьтесь со статьей ниже

Теперь давайте перейдем к теме, чтобы увидеть, как мы можем скопировать файл из одной папки в другую с помощью пакетного файла.

Существует множество команд для пакетных файлов, позволяющих копировать файлы из одной папки в другую. В приведенном ниже примере я использую команду копирования для перемещения файла из одной папки в другую.

В основном есть два шага для копирования файлов из одной папки в другую с помощью пакетного скрипта.

1) Создание пакетного файла:

  • Откройте блокнот или notepad++ и создайте новый файл.

  • Теперь сохраните только что созданный файл с расширением .bat.

После сохранения с расширением .bat вновь созданный файл становится bat-файлом.

2) Запишите скрипт в пакетный файл

После создания пакетного файла вы можете написать сценарий для копирования файлов из одной папки в другую. Ниже я написал скрипт, который спросит имя файла и скопирует файлы из папки «D:\amlendra\docs» в папку «D:\amlendra\data».

Вы можете изменить папку в соответствии с вашим использованием. Итак, давайте посмотрим на пакетный скрипт.

Скопируйте один или несколько файлов в другое место.

Объединение файлов

Чтобы объединить файлы, укажите один файл в качестве места назначения, но несколько файлов в качестве источника. Чтобы указать более одного файла, используйте подстановочные знаки или перечислите файлы со знаком + между каждым (файл1+файл2+файл3).
При копировании нескольких файлов таким способом первый файл должен существовать, иначе копирование завершится ошибкой. Обходным решением для этого является COPY null + file1 + file2 dest1

Двоичные копии

«COPY /B . » скопирует файлы в двоичном режиме.

Параметры /A и /B могут появляться в разных местах и ​​иметь разные значения в зависимости от местоположения.
Перед любым исходным — они будут устанавливать режим по умолчанию для всех исходных и целевых файлов.
После источника — они будут устанавливать режим для этого источника.
После назначения - они будут устанавливать режим для назначения.

Копировать из консоли (принять ввод пользователя)

COPY CON filename.txt
Затем введите текст ввода, а затем нажмите ^Z (клавиша Control и Z)

Предлагать перезаписать файл назначения

В Windows 2000 и более поздних версиях действием по умолчанию является запрос на перезапись, если только команда не выполняется из пакетного сценария.
Чтобы принудительно перезаписать целевые файлы, используйте переменную среды COPYCMD:
SET COPYCMD=/Y

Уровни ошибок

Если файл(ы) были успешно скопированы %ERRORLEVEL% = 0
Если файл не найден или заданы неверные параметры = 1

COPY принимает пути в формате UNC.
КОПИРОВАТЬ — это внутренняя команда.

Копировать файл в текущей папке
COPY исходный_файл.doc новый файл.doc

Копировать из другой папки/каталога:
COPY "C:\my work\some file.doc" "D:\New docs\newfile.doc"

Укажите только источник, с подстановочным знаком все файлы будут скопированы в текущий каталог:
COPY "C:\my work\*.doc"

Укажите источник с помощью подстановочного знака и место назначения в виде одного файла. Обычно это полезно только для файлов с обычным текстом.
COPY "C:\my work\*.txt" "D:\New docs\combined.txt"

Создайте пустой (нулевой) файл:
COPY NUL EmptyFile.txt

Тихое копирование (без обратной связи на экране)
COPY source_file.doc newfile.doc >nul

Скопируйте файл, но не перезаписывайте его, если целевой файл уже существует. Этот метод работает только для одного файла, без подстановочных знаков:

Echo n|COPY /-y c:\demo\source_file.txt c:\dir\dest.txt

«Похоже, успех связан с действием. Успешные мужчины продолжают двигаться. Они совершают ошибки, но не сдаются» ~ Конрад Хилтон

Связанные команды:

ROBOCOPY — надежное копирование файлов и папок.
XCOPY - Копирование файлов и папок.
MOVE - Переместить файл из одной папки в другую.
Q126457 - Команды VERIFY ON, COPY /V, XCOPY /V не сравнивают данные.
Эквивалент PowerShell: Copy-Item — копирование элемента из одного места в другое.
Эквивалентная команда bash (Linux): cp — скопировать один или несколько файлов в другое место.

В этом уроке мы увидим, как скопировать все файлы из одной папки в другую. Пакетный файл содержит ряд инструкций DOS (дисковая операционная система). Это позволяет инициировать выполнение команд, найденных в этом файле.

Синтаксис

Вот некоторые варианты, которые мы можем найти:

  • /s/e – рекурсивная копия.
  • /v — сверить копию с оригиналом.
  • /h — копировать системные и скрытые файлы.
  • /k — копировать атрибуты только для чтения. в противном случае все файлы станут доступными для чтения и записи.
  • /x — если вы беспокоитесь о разрешениях, вам могут понадобиться /o или /x.
  • /y — не спрашивать перед перезаписью существующих файлов.
Пакетный файл для копирования всех файлов из одной папки в другую

Следующий пример копирует все файлы из «c:\folder» в «d:\another_folder» с помощью команды xcopy:

Вам также может понравиться

Как отобразить значок «Мой компьютер» на рабочем столе в Windows 10

Как добавить ярлыки в меню «Отправить» в Windows 10

Как получить IP-адрес с помощью Ipconfig в CMD

Оставить ответ Отменить ответ

Последние публикации

Что такое Web Worker в JavaScript?

В этом руководстве мы рассмотрим, что такое Web Worker в JavaScript? Web Worker позволяет нам

Как отсортировать массив строк в JavaScript?

О нас


Научитесь программировать на разных языках программирования, таких как PHP, Java, Python, C/C++ и т. д., а также на таких фреймворках, как Laravel, Django, Spring и т. д., с помощью наших простых руководств, примеров, упражнений, mcq. и ссылки.

Читайте также: