it-swarm.com.ru

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

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

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

202
user73628

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

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

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

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

Если вы думаете, что xcopy может потерпеть неудачу на полпути (например, когда вы копируете по нестабильному сетевому соединению), или вам нужно остановить его и продолжить его позже, вы можете использовать xcopy /s/z c:\source d:\target.

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

381
lavinio

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

т.е. если есть пути в пути, например, если у вас есть:

"C:\Some Folder\*.txt"

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

C:\SomeFolder\*.txt
48
Ike

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

ROBOCOPY "C:\folder" "C:\new_folder" /mir

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

Источник: http://technet.Microsoft.com/en-us/library/cc733145.aspx

41
Etienne Dupuis

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

17
Joey

Чтобы обойти 'указать имя файла или имя каталога на цели (F = файл, D = каталог)? " Подскажите с помощью xcopy, вы можете сделать следующее ...

echo f | xcopy /f /y srcfile destfile 

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

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

13
wintondeshong

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

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

пример : 

    copy children-folder\file.something .\other-children-folder

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

    @echo off
    echo %%~dp0 is "%~dp0"
    echo %%0 is "%0"
    echo %%~dpnx0 is "%~dpnx0"
    echo %%~f1 is "%~f1"
    echo %%~dp0%%~1 is "%~dp0%~1"

проверьте документацию здесь о копии: https://technet.Microsoft.com/en-us/library/bb490886.aspx

а также здесь для документации по пакетным параметрам: https://www.Microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true

2
marcdahan
@echo off

rem The * at the end of the destination file is to avoid File/Directory Internal Question.

rem You can do this for each especific file. (Make sure you already have permissions to the path)
xcopy /Y "\\Oldeserver\storage\data\MyFile01.txt" "\\New server\storage\data\MyFile01.txt"*
pause

rem You can use "copy" instead of "xcopy "for this example.
0
David Castro

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

0
nik