XCOPY — описание команды и примеры использования

Как загрузить и скачать файлы с FTP. Bat файл.

Сегодня будет интересный пост. Да будет Вам известно, как загружать и скачивать файлы с FTP сервера используя командную строку Windows (cmd.exe) и пакетный файл, проще говоря, батник. Также сегодня на блоге появилась новая рубрика «Командная строка» в которой я буду писать посты на тему bat файлов и о командной строке в целом. Подпишитесь на обновления блога, что бы ни пропустить новых постов.

Так как блог рассчитан на начинающих пользователей ПК, я буду стараться выкладывать больше скриншотов, не только в этой статье, но и в других. Таким образом, я думаю, будет на много понятней и удобней воспринимать информацию.
Лучше не только прочитать, но и увидеть ход работы и результат в картинках!

И так, вернёмся к теме поста, и рассмотрим, как загрузить и удалить файлы с FTP сервера.

Все ниже описанный действия будут происходить на моём локальном FTP сервере, так как в данный момент у меня возникли некоторые проблемы с интернетом, и мне неудобно использовать свой FTP на котором крутится этот блог!
Если Вам интересно, как поставить FTP сервер на свой компьютер, то рекомендую прочитать мой прошлый пост « FTP сервер на домашнем ПК. Без проблем. » будет удобно для тренировки, если Вы не когда до этого момента не работали с FTP через Командную строку Window.

Синтаксис

xcopy источник [результат] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:мм-дд-гггг]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [/a|/m>] [/n] [/o] [/x] [/exclude:файл1[+[файл2]][+[файл3]] [/y|/-y>] [/z]

Параметр Описание
источник Обязательный параметр. Задает местонахождение и имена файлов для копирования. Параметр должен задавать или диск, или путь.
результат Задает место, куда будут скопированы файлы. Параметр может включать имя диска с двоеточием, имя каталога, имя файла или их комбинацию.
/w Выводит следующее сообщение с ожиданием подтверждения начала копирования: Нажмите любую клавишу, чтобы начать копирование файлов
/p Запрашивает подтверждение при создании каждого файла-результата.
/c Игнорирует ошибки.
/v Проверяет каждый скопированный файл на соответствие его оригиналу.
/q Отменяет вывод на экран сообщений команды xcopy.
/f Выводит имена исходных файлов и файлов-результатов в процессе копирования.
/l Отображает список копируемых файлов.
/g Создает незашифрованные файлы-результаты.
/d[:мм-дд-гггг] Копирует только файлы, измененные не ранее заданной даты. Если не включить значение мм-дд-гггг, команда xcopy копирует все файлы-источники, которые новее существующих файлов-результатов. Эта возможность позволяет обновлять только измененные файлы.
/u Копирует (обновляет) только те файлы-источники, которые уже существуют в каталоге результата.
/i Если источником является каталог или источник содержит подстановочные знаки и результат не существует, команда xcopy считает, что результат — это имя каталога, и создает новый каталог. Затем xcopy копирует все указанные файлы в новый каталог. По умолчанию команда xcopy запрашивает подтверждение, является ли параметр результат каталогом или файлом.
/s Копирует каталоги и подкаталоги, если они не пусты. Если параметр /s не задан, команда xcopy будет работать только с одним каталогом.
/e Копирует все подкаталоги, включая пустые. Параметр /e используется с параметрами /s и /t. /t Копирует только структуру подкаталога (т. е. дерево), а не файлы. Для копирования пустых каталогов следует задать ключ /e.
/k Копирует файлы с атрибутом «только для чтения» с сохранением этого атрибута для скопированных файлов, оригиналы которых имеют этот атрибут. По умолчанию команда xcopy удаляет атрибут «только для чтения».
/r Копирует файлы с атрибутом «только для чтения».
/h Копирует системные и скрытые файлы. По умолчанию команда xcopy не копирует системные и скрытые файлы.
/a Копирует только те файлы, которые имеют установленный атрибут «архивный». При использовании параметра /a атрибут «архивный» у исходных файлов не меняется.
/m Копирует только те файлы, которые имеют установленный атрибут «архивный». В отличие от параметра /a, параметр /m очищает атрибут «архивный» у скопированных файлов.
/n Копирует с использованием коротких имен файловой системы NTFS. Параметр /n требуется при копировании из файловой системы NTFS в файловую систему FAT или когда на диске-результате требуется использование соглашения об именах файлов как в файловой системе FAT (8.3). Файлы могут записываться в файловую систему FAT или NTFS.
/o Копирует сведения о принадлежности файлов и избирательной таблице управления доступом (DACL).
/x Копирует сведения о параметрах аудита файла и системной таблице управления доступом (SACL) (подразумевается наличие /p). /exclude:файл1[+[файл2]][+[файл3]] Определяет список файлов, содержащих строки.
/y Устраняет выдачу запроса на подтверждение перезаписи существующего конечного файла.
/-y Выдает запрос на подтверждение перезаписи существующего конечного файла.
/z Копирует по сети в режиме перезапуска.
/? Отображает справку в командной строке.

Примеры использования XCOPY

XCOPY /? — выдать краткую справку по использованию команды.

xcopy C:users D:copy1 — скопировать файлы из каталога C:users в каталог D:copy1 . Будет выполняться копирование без подкаталогов и только файлов без атрибутов «Скрытый» и «Системный». Для скопированных файлов будет установлен атрибут Архивный . Если каталог, в который выполняется копирование, не существует, то пользователю будет выдано сообщение:

Что означает D:copy1:
имя файла или каталога
(F = файл, D = каталог)? D

После ответа D целевой каталог будет создан и копирование будет выполняться в D:COPY1. Для подавления запроса на создание целевого каталога используется параметр /I:

xcopy C:users D:copy1 /I

xcopy C:users D:copy1 /H /Y /C — копирование файлов, включая скрытые и системные, с подавлением запроса на перезапись существующих и возобновлением при ошибке. Если существующий в целевом каталоге файл имеет атрибут «Только чтение», то копирование не выполняется. Для перезаписи таких файлов используется ключ /R

xcopy C:users D:copy1 /H /Y /C /R /S — скопировать все файлы и подкаталоги ( /S ) с перезаписью существующих без запроса ( /Y ) , включая скрытые и системные. ( /H ) с перезаписью файлов с атрибутом «Только чтение» (/R) и игнорированием ошибок ( /C )

xcopy C:users D:copy1 /H /Y /C /R /S /EXCLUDE:C:userslistnotcopy.txt — то же, что и в предыдущем случае, но текстовый файл C:userslistnotcopy.txt задает признаки исключения из процедуры копирования. Пример содержимого файла:

User1 — исключить из копирования каталог C:usersuser1
All Users исключить из копирования каталог C:usersAll Users
de*.* — исключить из копирования все файлы и каталоги, начинающиеся на буквосочетание «de»

xcopy C:users*.exe D:copy1 /H /Y /C /R /S /EXCLUDE:C:userslistnotcopy.txt — то же, что и в предыдущем примере, но выполняется только копирование исполняемых файлов с расширением .exe .

xcopy %TEMP%*.ini D:copy1ini /H /Y /C /R /S /I — копирование всех файлов с расширением .ini из каталога временных файлов в каталог D:copy1ini . Если целевой подкаталог ini не существует, то он будет создан без запроса пользователю ( /I ) .

xcopy %TEMP%*.ini D:copy1ini /H /Y /C /R /S /I /D:09-16-2013 — то же, что и в предыдущем примере, но выполняется копирование только тех файлов, у которых установлена дата изменения 16 сентября 2013 года и старше.

xcopy C: D:copy1LISTDIR /H /Y /C /R /S /I /E /T — создать структуру папок диска C: в каталоге D:copy1LISTDIR . Копирование файлов не выполняется. Копируются только папки, включая пустые, скрытые и системные.

xcopy C: D:copy1LISTDIR /H /Y /C /R /S /I /E /T /D:09-16-2013 воссоздать в каталоге D:copy1LISTDIR структуру папок диска C: , с датой изменения 16 сентября 2013 года и позже.

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

Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой «Поделиться»

Примеры использования PsExec.

Общий синтаксис запуска программы PsExec выглядит так:

Рассмотрим несколько примеров для понимания работы утилиты PsExec.

1. Узнаем конфигурацию сетевого интерфейса компьютера в сети.

Запускаем программу psexec с указанием ip-адреса удаленного компьютера и командой, которую нужно выполнить.

В этом примере запуск выполняется для компьютера, находящегося в домене и cmd работает от имени пользователя, состоящего в группе «Администраторы домена». Поэтому в параметрах запуска psexec не указаны логин и пароль администратора удаленного компьютера.

Для выполнения PsExec на компьютере от имени локального администратора удаленного компьютера необходимо запустить утилиту с параметрами: -u (имя пользователя) -p (пароль пользователя).

2. Запускаем исполняемый файл со своего компьютера на удаленный.

Параметр -c используется, чтобы скопировать файл из локальной операционной системы в удаленную и запустить его там на исполнение.

запуск скрипта на удаленном компьютере с помощью psexec

Если запустить psexec без параметра -с, то указанная директория с запускаемым файлом будет запрашиваться на удаленной системе.

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

3. Запуск PsExec на нескольких компьютерах.

Запуск psexec на двух или трех удаленных компьютерах можно выполнить путем перечисления их имен или ip-адресов.

Когда целевых компьютеров десятки, то перечислять их каждый раз через запятую неудобно. В этом случае можно воспользоватся параметром @ и указать текстовый файл, в котором будет задан список ip адресов компьютеров.

4. Подключение к командной строке Windows удаленного компьютера.

После запуска cmd поменялось окно приветствия — это означает, что в терминал загрузилась среда исполнения команд удаленного компьютера.

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

Пример bat-файла для загрузки файла на FTP

Теперь попробуем написать «батник» для загрузки файлов на FTP-сервер. Для этого создадим новый текстовый документ, и переименуем его в put_on_ftp.bat . Редактировать его можно обычным Блокнотом, но удобнее это делать с помощью бесплатной программы Notepad++.

Для начала напишем «батник», который будет загружать на сервер tavalik.ru файл file_data.dat из «С:example» . Алгоритм работы bat-файла будет такой:

  • Создаем файл transport.txt с последовательностью операторов ftp;
  • Выполняем команду ftp, указав в качестве параметров созданный файл;
  • Удаляем transport.txt.

komanda_ftp_06

В данном примере имя файла и директорий жестко прописаны в файле. Это не всегда удобно. Доработаем bat-файл таким образом, чтобы данные для загрузки он получал в качестве параметров, а также вынесем все изменяемые значения в переменные файла. Получим следующий код (скачать файл):

komanda_ftp_07

Соответственно, чтобы скопировать файл file_data.dat из «C:example» на FTP-сервер в «TempBackup» , потребуется запустить этот «батник» указав в качестве параметров имя файла, локальный и удаленный каталоги.

komanda_ftp_08

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

Как запустить команды в терминале Windows Server

Как и в десктопной версии, все указанные команды можно запустить с помощью командной строки.

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

  1. Открыть строку поиска в панели «Пуск».
  2. Ввести в поле запрос «командная строка», можно и cmd.
  3. Когда соответствующее приложение выйдет, нажать на пункт «Запуск от имени администратора».

Команды можно запускать с помощью утилиты Windows PowerShell, которую также можно найти среди предустановленных программ.

Как в PsExec запустить команду с аргументами

Аргументы программы достаточно указать через пробел после самой команды:

После запуска команды в удалённой системе вывод команды будет напечатан в текущий стандартный вывод, который является нашей текущей оболочкой (окном командной строки). Этот вывод может быть перенаправлен в файл с помощью символа >. Если у нас много удалённых систем для запуска команд, эта опция будет очень полезна.

В этом примере выходные данные команды ipconfig сохраняются в файл с именем HACKWARE-SERVER_ifconfig.

Для вывода содержимого файла можно использовать команду Get-Content или её более короткий псевдоним cat:

Несколько полезных скриптов с Copy-Item

Скопировать только файлы:

Get-ChildItem «C:SourceFolder» -File -Recurse | Copy-Item -Destination «F:DestFolder»

Скопировать структуру папок, без файлов:

$path = Get-ChildItem «C:SourceFolder» -Recurse | ?
$dest = «F:DestFolder»
$parent = $path[0].Parent.Name
$path | foreach
[H1toH2]

.FullName -match «$parent.+»
New-Item -ItemType directory ($dest + $Matches[0])
>

Copy-Item очень простой и удобный в использовании командлет PowerShell для выполнения операций копирования и перемещения файлов. В сочетании с другими инструментами PowerShell, Copy-Item также является мощным инструментом для написания скриптов.

[/H1toH2]

Adblock
detector