Скрипт для копирования файла из одной папки в другую
Обновлено: 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. и ссылки.
Читайте также: