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

<p>у меня есть папка хранения в сети, в которой все пользователи будут хранить свои активные данные на сервере. теперь этот сервер будет заменен новым из-за проблем с размещением, поэтому мне нужно скопировать файлы подпапок из старой папки хранения на сервере в новую папку хранения на сервере. у меня ниже ex:</p><p>из\oldeserver\storage\data & files в\new server\storage\data & files. </p>

<p><strong> xcopy.exe </strong>, безусловно, ваш друг здесь .. он встроен в windows, поэтому его стоимость ничего не стоит.</p><p>просто <code>xcopy /s c:\source d:\target</code></p><p>вы, вероятно, захотите настроить несколько вещей; некоторые из опций, которые мы также добавляем, включают в себя:</p><ul> <li><code>/s/e</code> - рекурсивное копирование, включая копирование пустых каталогов.</li> <li><code>/v</code> - добавьте это, чтобы проверить копию на оригинале. медленнее, но для параноика.</li> <li><code>/h</code> - копировать системные и скрытые файлы.</li> <li><code>/k</code> - копировать атрибуты только для чтения вместе с файлами. в противном случае все файлы становятся доступными для чтения и записи.</li> <li><code>/x</code> - если вам нужны разрешения, вам может потребоваться <code>/o</code> или <code>/x</code>.</li> <li><code>/y</code> - не запрашивать перед перезаписью существующих файлов.</li> <li><code>/z</code> - если вы думаете, что копия может потерпеть неудачу, и вы хотите перезапустить ее, используйте это. он размещает маркер на каждом файле при копировании, поэтому вы можете повторно запустить команду xcopy, чтобы продолжить с того места, где он остановился.</li> </ul><p>если вы думаете, что xcopy может потерпеть неудачу на полпути (например, когда вы копируете по нестабильному сетевому соединению), или вам нужно остановить его и продолжить его позже, вы можете использовать <code>xcopy /s/z c:\source d:\target</code>.</p><p>надеюсь это поможет.</p>

<p>просто для ясности, когда вы используете <code>xcopy /s c:\source d:\target</code>, поместите "" вокруг c:\source и d:\target, иначе вы получите ошибку.</p><p>т.е. если есть пути в пути, например, если у вас есть:</p><pre><code>"c:\some folder\*.txt" </code></pre><p>но не обязательно, если у вас есть:</p><pre><code>c:\somefolder\*.txt </code></pre>

<p>мой любимый для резервного копирования данных:</p><pre><code>robocopy "c:\folder" "c:\new\_folder" /mir </code></pre><p>/ mir для зеркала. вы также можете использовать/mov для перемещения файлов. он воспроизводит точно такую же папку. он может удалять/перезаписывать файлы по мере необходимости. прекрасно работает для меня. <strong>это быстрее, чем xcopy/copy. он также встроен в windows.</strong></p><p>источник: <a href="http://technet.microsoft.com/en-us/library/cc733145.aspx">http://technet.microsoft.com/en-us/library/cc733145.aspx</a> </p>

<p>возможно, вы захотите взглянуть на <a href="http://technet.microsoft.com/en-us/library/bb491035.aspx">xcopy</a> или <a href="http://technet.microsoft.com/en-us/library/cc733145.aspx">robocopy</a> , которые являются довольно комплексными решениями почти для всех операций копирования файлов в windows.</p>

<p>чтобы обойти 'указать имя файла или имя каталога на цели (f = файл, d = каталог)? " подскажите с помощью xcopy, вы можете сделать следующее ...</p><p><code>echo f | xcopy /f /y srcfile destfile</code> </p><p>или для тех из нас, кто просто копирует большие подструктуры/папки:</p><p>используйте/i, который указывает место назначения, должно быть каталогом, если копируется более одного файла</p>

<p>если вы хотите скопировать файл, не используя абсолютный путь, относительный путь другими словами:</p><p>не забудьте написать антислеш в пути, а не косую черту (^^)</p><p>пример : </p><pre><code> copy children-folder\file.something .\other-children-folder </code></pre><p>ps: абсолютный путь может быть получен с использованием этих групповых символов, называемых «пакетные параметры»</p><pre><code> @echo off echo %%~dp0 is "%~dp0" echo %%0 is "%0" echo %%~dpnx0 is "%~dpnx0" echo %%~f1 is "%~f1" echo %%~dp0%%~1 is "%~dp0%~1" </code></pre><p>проверьте документацию здесь о копии: <a href="https://technet.microsoft.com/en-us/library/bb490886.aspx">https://technet.microsoft.com/en-us/library/bb490886.aspx</a> </p><p>а также здесь для документации по пакетным параметрам: <a href="https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true">https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/percent.mspx?mfr=true</a> </p>

<pre><code>@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. </code></pre>

<p>посмотрите на инструмент windows на основе <code>rsync</code> <a href="http://www.nasbackup.com/index.php/features">nasbackup</a> . это будет бонусом, если вы знакомы с командами rsync.</p>