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

Переходы и метки.

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

Исходные данные: имеется 2 съемных диска, один из которых должен быть виден в проводнике как диск X: , а второй – как диск Y: независимо от того, в какой порт USB они подключены и какие буквы присвоены им операционной системой. Для назначения букв дискам можно воспользоваться командой SUBST.
Будем считать, что реальные диски могут быть подключены как F: или G:
Опознавание дисков будем выполнять по наличию файла с определенным именем
(лучше всего такой файл сделать скрытым в корневом каталоге съемного диска и назвать его как-нибудь необычно):

Flashd1.let – на первом диске

Flashd2.let – на втором

Таким образом, задача командного файла заключается в том, чтобы проверить
наличие на сменных дисках F: и G: файлов Flashd1.let
или Flashd2.let и, в зависимости от того, какой из них присутствует,
присвоить диску букву X: или Y:

Для поиска файла на диске воспользуемся командой :

IF EXIST имя_файла команда

В качестве команды, которая будет выполнена при удовлетворении условия используем , которая предназначена для сопоставления каталога и виртуального диска.

SUBST X: C: – – создать виртуальный диск
X:, содержимым которого будет корневой каталог диска C:

Для решения поставленной задачи, создаем командный файл, например с именем setletter.bat, следующего содержания:

В качестве метки используется строка символов, начинающаяся
с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало
сообщений об ошибке:

При выполнении измененного таким образом командного файла, сообщение об
ошибке при выполнении SUBST исчезнет.

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

Одним из важнейших приемов при написании сложных командных файлов
является анализ успешности выполнения конкретной команды или программы.
Признаки ошибок при выполнении команд можно отслеживать, анализируя
специальную переменную ,
значение которой формируется при завершении работы большинства программ.
Обычно ERRORLEVEL равно нулю, если программа завершилась без ошибок и
единице – при возникновении ошибки. Могут быть и другие значения, если они
предусмотрены в выполняемой программе.

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

– приостановить выполнение командного файла до
нажатия любой клавиши.

Если же в файле test.bat убрать CALL, оставив “1.bat”, то , выполнится командный файл 1.bat, и возврат в test.bat выполняться не будет.

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

Переменные вызываемого файла будут доступны в вызывающем файле.

Кстати, используя передачу управления командному файлу, можно организовать
его зацикливание. Попробуйте добавить в конец файла test.bat строку:

Выйти из зацикливания командного файла можно по нажатию комбинации
CTRL+Break.

Команда CALL может использоваться не только для вызова другого командного файла, но и для вызова внутренней подпрограммы. В этом случае в качестве аргумента используется не имя внешнего файла, а метка:

Своя команда для создания новых файлов.

В составе операционной системы Windows нет специальной команды для создания нового файла, но без нее можно легко обойтись несколькими способами:

Копирование с клавиатуры в файл

COPY CON myfile.txt

При выполнении этой команды данные с клавиатуры (стандартное устройство CON – консоль) будут заноситься в файл myfile.txt текущего каталога. Нажатие клавиши F6 или комбинации CTRL-Z завершит вывод.

Комбинация перенаправления ввода и перенаправления вывода:

При выполнении этой команды, как и в первом случае, используется копирование
с консоли в файл, но вместо ручного ввода данных с клавиатуры используется ввод с
несуществующего файла (устройства) xyz. Система выдаст сообщение, о том, что такого
устройства или файла
не существует, но пустой файл myfile.txt будет успешно создан.

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

COPY NUL myfile.txt

При работе в командной строке часто приходится создавать новые пустые
файлы, поэтому, стоит подготовить свой командный файл (например, с
именем nf.bat),

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

Для удобства использования, можно поместить этот командный файл в системный каталог
(например, в C:windowssystem32) или любой другой, существующий в путях
поиска, задаваемых значением переменной PATH). Теперь, в командной строке, находясь в любом каталоге можно одной командой создавать пустые файлы.

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

Расширение командного файла (.bat) можно не набирать и команда еще больше упрощается:

В тексте командного файла присутствует проверка, задано ли имя
создаваемого файла в командной строке (if “%1%” EQU “” goto error), и если не
задано – выводится сообщение об ошибке и командный файл завершает
свою работу.

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

Советы

Xcopy is a command-line utility, which has been available out of the box since Windows 98. You can find this tool under the %WINDIR%system32 folder with the executable name xcopy.exe.

Compared to the Windows copy command, Xcopy is much more efficient in copying files and directories. In addition, Xcopy has more options that make it more customizable and lets you control the file copy behavior.

Benefits

There are several benefits or advantages of using Xcopy that you will learn as you progress in this guide. But below are some of the benefits of using Xcopy.

  • Faster copy operation on large sets of files and directories.
  • Simplifies application deployment.
  • Can replicate the source directory structure as is.
  • Copy files while retaining the owner and access control list (ACL) information.
  • Copy and overwrite read-only files.
  • Can exclude files based on the file name, extension, or path.
  • Can identify updated files, which is useful for differential backups.
  • Integrate and use with scripts.

Limitations

As awesome as Xcopy is, it is not without limitations. Although these limitations may not be a deal-breaker, knowing what they are would be good before diving in.

  • Cannot copy open files.
  • No support for the Windows Volume Shadow Copy Service (VSS). This lack of VSS support makes Xcopy not suitable for backing up live operating system volumes.
  • Insufficient memory error when the length of the path plus file name exceeds 254 characters.

Примеры командных файлов.

Использование утилит командной строки и командных файлов нередко позволяют
решить многие проблемы связанные с повседневной эксплуатацией компьютерной
техники. Большинство системных администраторов и грамотных пользователей
продолжают ими пользоваться, несмотря на то, что в Windows проявилось новое,
более мощное и современное средство управления системой – WMI
(Windows Management Instrumentation) и многофункциональная оболочка пользователя Power Shell. Очевидно, не в последнюю очередь, это
обусловлено простотой реализации и достаточной
эффективностью командной строки для решения повседневных задач обслуживания системы.

Ниже приведены простые
примеры с комментариями, которые демонстрируют некоторые возможности и
способы применения .cmd и .bat

Передача параметров командному файлу.

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

params.bat FIRST second “two words”
Параметры командной строки, содержащие пробелы должны заключаться в двойные кавычки.

При обработке входных параметров необходимо знать, были ли они вообще заданы в командной строке. Для проверки наличия каких-либо входных параметров, передаваемых
командному файлу, можно проверить, является ли значение переменной %1
пустым, что можно сделать, заключив ее, например в двойные кавычки, и проверив полученный результат на наличие этих кавычек, следующих подряд:

REM пробел текст
Строки, начинающиеся с REM пробел, считаются комментариями и командным процессором игнорируются.

Справочник по командам CMD Windows

Данная страница представляет собой самый полный документ в русскоязычном сегменте Интернет, содержащий список команд командной строки всех версий Windows. Наименования подавляющего большинства команд являются ссылками и ведут на страницы с подробным их описанием и примерами использования. В разных версиях ОС семейства Windows набор поддерживаемых команд, их параметры командной строки, синтаксис и отображение результатов выполнения могут различаться. Одна и та же утилита командной строки может присутствовать в стандартной поставке одной версии Windows, но отсутствовать в другой, или входить в состав дополнительных средств, как например, Resource Kit или Software Development Kit.

На данной странице представлено описание не только внутренних команд CMD, но и стандартных утилит командной строки, входящих в состав конкретных версии операционной системы (ОС) семейства Windows. Некоторые из приведенных команд устарели, и больше не поддерживаются разработчиком или не имеют смысла в современных операционных системах, что отмечается в описании команды.

:/>  Устанавливаем гаджет календарь в Windows »

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

ARP – просмотр и изменение таблиц ARP (Address Resolution Protocol)

ASSOC – просмотр или изменение сопоставлений расширений файлов приложениям

AT – управление планировщиком задач

ATTRIB – изменение атрибутов файлов

Auditpol – управление политиками аудита.

BASH – командная оболочка BASH в подсистеме Windows для Linux (WSL).

BCDBOOT – копирование в системный раздел файлов загрузки и создание
нового хранилища конфигурации загрузки (BCD)

BCDEDIT – редактирование хранилища данных конфигурации загрузки (BCD)

BOOTCFG – редактирование параметров загрузки в файле boot.ini

BOOTREC – восстановление загрузочных записей и конфигурации загрузки Windows

BOOTSECT – редактирование загрузочных секторов для обеспечения загрузки NTLDR или BOOTMGR

BREAK – включить или выключить обработку комбинации клавиш CTRL+C в DOS

CACLS – редактирование списков управления доступом к файлам (ACL – Access Control List)

CALL – вызов из командного файла подпрограмм или других командных файлов

CD – смена каталога (Change Directory)

CHGLOGON – изменение настроек сервера терминалов, аналогично CHANGE LOGON

CHGPORT – изменение настроек сервера терминалов, аналогично CHANGE PORT

CHCP – просмотр или изменение текущей кодовой страницы

CHKDSK – проверка диска (Check Disk)

CHKNTFS – проверка признака ошибки файловой системы и управление проверкой диска при загрузке Windows

CHOICE – реализация пользовательского ввода в командном файле

CIPHER – отображение или изменение шифрования файлов на томах NTFS

CLEARMGR – управление очисткой дисков Windows

CLIP – перенаправление вывода утилит командной строки в буфер обмена Windows

CLS – очистка экрана в командной строке

CMD – запуск новой копии интерпретатора командной строки

CMDKEY – создание, отображение, удаление и сохранение имен пользователей и паролей

COLOR – изменение цвета текста и фона в окне CMD

COMMAND – запуск новой копии интерпретатора командной строки MS-DOS

COMP – сравнение содержимого файлов

COMPACT – управление сжатием и распаковкой файлов в разделах NTFS

CONVERT – преобразование файловой системы из FAT в NTFS

COPY – копирование файлов и каталогов

Cscript – сервер сценариев Windows с консольным интерфейсом

DATE – отображение или изменение даты

DEBUG – запуск отладчика DOS-Windows XP

DEFRAG – дефрагментация диска

DEL – удаление одного или нескольких файлов

DevCon – управление устройствами в командной строке

DIANTZ — тоже что и MAKECAB, создание архивов .cab.

DIR – отображение списка файлов и каталогов

DISKCOMP – сравнение содержимого двух гибких дисков

DISKCOPY – копирование содержимого одного гибкого диска на другой

DISKPART – управление разделами и дисками из командной строки

DISM – управление компонентами образрв WIM.

DISPDIAG – вывод дампов с диагностической информацией о графической подсистеме.

DJOIN – автономное присоединение компьютера к домену.

DOSKEY – редактирование и повторный вызов команд Windows, создание макросов DOSKey

DRIVERQUERY – отобразить информацию об установленных драйверах.

DxDiag – средство диагностики DirectX.

EDIT – запуск текстового редактора

ENDLOCAL – конец локальных изменений переменных окружения в командном файле

ERASE – аналогично команде DEL – удаление файлов

ESENTUTL – обслуживание баз данных Extensible Storage Engine для Windows

EVENTCREATE – запись сообщения в журнал событий Windows

EXIT – выход из процедуры или командного файла

EXPAND – распаковка сжатых файлов CAB-файлов.

EXTRACT – извлечение содержимого, распаковка CAB-файлов в Windows (EXTRAC32)

FC – сравнение содержимого файлов

FIND – поиск строки символов в файле

FINDSTR – поиск строк в файлах с использованием регулярных выражений

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

FORFILES – выполнение указанной команды для каждого файла из заданной группы

FORMAT – форматирование диска

FSUTIL – управление файловой системой

FTP – консольный FTP-клиент

FTYPE – просмотр и изменение расширений файлов и сопоставленных им приложений

GETMAC – отображение физического адреса сетевого адаптера (MAC-адреса)

GOTO – команда безусловного перехода в командном файле

GPRESULT – отображение результирующей политики (RSoP)

GPUPDATE – обновление групповых политик.

HELP – вызов справки командной строки Windows

HOSTNAME – отображение имени компьютера

iCACLS – управление списками доступа (ACL)

IF – оператор условного выполнения команд в пакетном файле

IPCONFIG просмотр и управление конфигурацией протокола IP

LABEL – редактирование меток тома дисков

LicensingDiag – диагностика лицензирования Windows 10 и старше

LOGMAN – управление монитором оценки производительности системы

LOGOFF – завершение сеанса пользователя

MAKECAB – создание сжатых файлов формата CAB

MBR2GPT – преобразование дисков MBR в GPT

MEM – вывод справки об использовании памяти в MS-DOS

MD – создание нового каталога

MKLINK – создание символической ссылки на файл или каталог

MODE – конфигурирование системных устройств в среде CMD

MORE – постраничный вывод в консоли

MOUNTVOL – управление точками монтирования томов

MOVE – перемещение файлов и каталогов

MOVEFILE – перемещение или удаление занятых файлов при следующей перезагрузке

MSG – отправка сообщений пользователям.

MSTSC – подключение к удаленному рабочему столу.

NBTSTAT – просмотр статистических данных NETBIOS через TCP/IP (NetBT)

NET – управление ресурсами локальной сети

NETCFG – отображение и изменение конфигурации компонентов сети

NETSH – командная сетевая оболочка (Network Shell)

NETSTAT – отображение статистики сетевых соединений

OPENFILES – управление открытыми по сети или локально файлами

PATH – отображение или изменение путей поиска исполняемых файлов

PATHPING – трассировка маршрута с возможностью оценки качества участков трассы

PAUSE – пауза при выполнении командного файла

PING утилита проверки доступности узла

PKGMGR – управление программными пакетами Windows

PNPUTIL – конфигурирование драйверов устройств PnP

POPD – возврат в каталог, ранее запомненный с помощью команды PUSHD

POWERCFG – настройка параметров системы электропитания Windows

PowerShell_ISE – запуск интегрированной среды разработки сценариев PowerShell

PRINT – печать текстового файла

PROMPT – изменение строки приглашения в консоли

PUSHD – сохранить текущий путь каталога и перейти в указанный

PSR – записать действия пользователя в Windows 7/8.1/10 (Problem Steps Recorder)

QPROCESS – отобразить состояние процессов

QUERY – опросить состояние процессов и сеансов пользователей

RASDIAL – управление сеансами удаленного доступа

RASPHONE – управление сеансами удаленного доступа

RD – удаление каталога

REAGENTC – адимнистрирование стреды восстановления Windows

RECOVER – восстановление файлов на поврежденном диске

REG – утилита командной строки для работы с реестром Windows

REGEDIT – импорт и экспорт данных реестра Windows

REGSVR32 – регистрация или отмена регистрации DLL

REGINI – управление доступом к разделам реестра

RENAME (REN) – переименование файлов

REPLACE – замена или добавление файлов в катологах

RESET – сброс сеанса удаленного рабочего стола (RDP сессии)

RMDIR – удаление каталога

ROBOCOPY – утилита резервного копирования и синхронизации каталогов (Robust File and Folder Copy)

ROUTE – управление таблицей маршрутизации

RUNAS – запуск приложения от имени другого пользователя

RUNDLL32 – запуск DLL в качестве приложения

SC – управление службами Windows (Service Control)

SCHTASKS – управление планировщиком задач

SCLIST – отображение списка системных служб

SET – отображение и изменение переменных среды окружения Windows

SETLOCAL – установка локальных переменных в командном файле

SETX – утилита для создания системных переменных

SFC – проверка и восстановление системных файлов Windows

SHIFT сдвиг входных параметров для командного файла

SHUTDOWN – выключение или перезагрузка компьютера

SLEEP – задержка по времени в пакетном файле

SLMGR – управление лицензированием программного обеспечения Windows

SORT – сортировка строк в текстовом файле

START – запуск приложения или командного файла

SUBST – назначение (отмена назначения) каталогу буквы диска

SxSTrace – диагностическое средство трассировки компонент системы

SYSTEMINFO – отображение информации о системе

TAKEOWN – изменение владельца файла или каталога

TASKKILL – завершение процессов на локальной или удаленной системе.

TASKLIST – отображение списка выполняющихся приложений и служб Windows

TIME – отображение и установка системного времени

TELNET – telnet-клиент Windows

TFTP – TFTP-клиент Windows

TIMEOUT – задержка в пакетных файлах

TITLE – изменение заголовка окна CMD.EXE

TRACERT – трассировка маршрута к удаленному узлу

TREE – отображение структуры каталога в графическом виде

TSCON – подключение к сессии удаленного рабочего стола (RDP).

TSDISCON – отключение сессии удаленного рабочего стола (RDP).

TSKILL – завершение процессов, адаптированное для среды сервера терминалов (RDP).

TYPE – вывод на экран содержимого текстового файла

TypePerf – вывод сведений о производительности на экран или в журнал

TZUTIL – управление часовыми поясами в среде Windows

VaultCmd – администрирование учетных данных Windows.

VER – отображение версии операционной системы

VERIFIER – тестирование драйверов Windows.

VERIFY – управление режимом проверки записываемых файлов

VOL – вывод данных метки тома

W32TM – управление службой времени Windows

WAITFOR – организация обмена сигналами между компьютерами

WEVTUTIL – управление событиями в Windows

WHERE – определение места расположения файлов

WHOAMI – вывод имени текущего пользователя

WINDIFF – сравнение содержимого файлов

Winget – установка, обновление, перенос и удаление приложений в Windows 10 и более поздних версий.

WinMgmt – обслуживание инструментария управления Windows (WMI)

WINRM – удаленное управление Windows из командной строки

WINRS – удаленная командная строка (Remote Shell)

WINSAT – средство проверки производительности Windows

WMIC – выполнение команды WMI в командной строке

WSCollect – получить CAB-файл с копиями журналов Windows 10 на рабочем столе

:/>  Как исправить 100% использование диска в Windows 10

Wscript – сервер сценариев Windows с графическим интерфейсом

WUSA – автономная установка обновлений Windows

XCOPY – копирование файлов и папок

Прочие материалы по работе с командной строкой Windows

Строки командных файлов могут содержать как команды самого
процессора команд CMD, так и имена исполняемых модулей (программ или командных файлов).

– исполняемый файл ping.exe с параметром yandex.ru. Расширение .exe можно не указывать, и данная команда может быть записана так:

Список стандартных команд можно получить, введя команду:

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

HELP Имя команды

В русифицированной версии Windows необходимо учитывать, что в среде командного процессора символы национального алфавита отображаются в DOS-кодировке, в соответствии с кодовой страницей (code page) 866. При необходимости, для переключения между кодовыми страницами Windows и DOS используется команда

CHCP номер страницы
– использовать кодовую страницу 866 (DOS)
– использовать кодовую страницу 1251 (WINDOWS)

Внешний вид окна CMD.EXE (консоли Windows) можно изменить с помощью команды

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

– символы белого цвета на черном фоне (используется по умолчанию).

– черные символы на белом фоне.

– светло-желтые символы на черном фоне.

– подсказка для команды COLOR.

Специальные символы CMD

Работа с командным процессором предполагает использование двух стандартных устройств – устройства ввода (клавиатура) и устройства вывода (дисплей). Однако, имеется возможность изменить стандартно используемые устройства ввода-вывода с помощью специальных символов – символов перенаправления

– перенаправление вывода
– перенаправление ввода

Для вывода справки не на экран а, например, в файл с именем help.txt, можно использовать следующую команду:

Простейший пример перенаправления ввода:

cmd.exe < commands.txt – командный процессор не будет ожидать ввода команд с клавиатуры, а считает их из файла commands.txt. Фактически, указанный текстовый файл в данном случае является командным файлом.

При запуске командного процессора можно указать конкретную команду в качестве аргумента командной строки:

cmd.exe /C HELP FOR – выполнить команду HELP FOR и завершиться (параметр командной строки или ключ /C)

cmd.exe /K HELP FOR – выполнить команду HELP FOR и перейти в режим ожидания дальнейшего ввода команд (ключ /K)

Подробную справку по использованию cmd.exe можно получить, введя в качестве аргумента ключ /?

& – одиночный амперсанд используется для разделения нескольких команд в одной командной строке.

команда1 & команда2 – выполняется первая команда, затем вторая команда.

&& – удвоенный амперсанд между двумя командами, означающий условное выполнение второй команды. Она будет выполнена, если код завершения (или код возврата) первой команды равен нулю, т.е. команда выполнена успешно. Успешность
выполнения команды определяется значением специальной переменной среды ERRORLEVEL.

команда1 && команда2 – выполняется команда1, а команда2 выполняется, только если первая была выполнена успешно.

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

cmd.exe /C “HELP IF” & ”HELP IF”

Завершится выполнением первой команды и сообщением об ошибке для второй:

“”HELP” не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Как и в любом другом языке программирования, в сценариях CMD невозможно обойтись без переменных. Для получения их значения применяется специальный символ – знак процента % . Строка, заключенная в знаки процента интерпретируется как значение переменной, например:

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

Scripting with Xcopy

Apart from using Xcopy interactively, you can reap its benefits better if you use it to automate tasks with scripts. Below are a couple of examples that demonstrate how you can use Xcopy in scripts.

This example batch script copies all files recursively with error-handling logic. And based on the error or exit code, the script returns a message showing the reason for the error.

To create the batch file, open a text or code editor of your choice, copy the code below, paste it to your editor, and save the file as copycomplete.bat.

pycomplete.bat xcopydemo xcopydemofolder

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

Running an Xcopy batch file

Xcopy Batch Script to Move Data

Xcopy has no built-in functionality to move files and folders from the source to the destination. But, as a workaround, you can create a script that would Xcopy the files first and then delete the files from the source.

The code below will copy the files to the destination. And if the copy process was successful, the script will delete the files at the source. Copy the code below and save it in a new file called movefiles.bat.

movefiles.bat xcopydemo xcopydemofolder

Prerequisites

  • A Windows (server or client) computer. Xcopy comes built-in to Windows, and you don’t need to download anything else. This guide will use Windows 10 Build 1909.
  • Xcopy works on the command prompt or PowerShell, and this article assumes that you already have one open.

Способы запуска командной строки

Ссылки на материалы по настройке командной строки и приемах работы с ней размещены в конце страницы.

Об этой статье

If something can go wrong, it probably will. The same is the case when you’re copying files regardless of the volume. Below are the common Xcopy errors that you might encounter.

Invalid Number of Parameters

This error typically occurs when the command you’ve entered contains space characters in it. To avoid this error, when typing a source or destination path that contains space characters, you should surround the path with double-quotes.

For example, if the path is C:Documents and Settings, enter the path as “C:Documents and Settings”.

Cannot Perform a Cyclic Copy

This error happens if the source directory you are copying also includes the target directory. In this case, Xcopy would enter a loop, causing an error. When using Xcopy, the destination must be a fully independent directory or disk if you copy all directories and subdirectories.

This error occurs when you’ve typed wrong or invalid syntax in the command. As an example, you might encounter this error when you’ve specified your path in quotes and but the ending quotes are missing.

For example, the command below has a missing closing double-quote character in the destination path.

Xcopy C:Workarea “C:WorkareaXCopy Demo /S /I /E /Y

Присвоение съемному диску одной и той же буквы.

Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен
всегда под одной и той же буквой, независимо от того, на каком компьютере он
используется и каким образом он был подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST, но реализуем присвоение новой буквы диску с
помощью подстановочного значения переменной %0, создаваемой
системой при каждом запуске командного файла.

Выберем для съемного диска желаемую букву, например – X.

Некоторые из переменных окружения, в том числе и переменная %0,
принимающая значение пути и имени выполняющегося командного файла, позволяют
при определенной модификации с использованием специального признака –
символа ” ~ “, получить ее частичное значение (расширение переменной).
Например, не полный путь
файла, а только его имя, или каталог расположения, или букву диска, с
которого он был запущен или еще около десятка различных элементов, связанных
с подстановочными значениями переменной %0.

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

Working with Xcopy

If you have a file server containing a huge amount of files that you want to copy, perhaps to a backup location, testing out your Xcopy command first would be ideal. One situation when you’d want to test Xcopy is when you’re combining multiple Xcopy options.

Using the /L switch with Xcopy, you can simulate what would have happened when you issued the command by listing which files it would copy. This way, you can confirm whether your command will copy all the files that you intended.

XCOPY C:WorkareaXCopyDemo C:WorkareaXCopyDemoFolder /L

Copying a Single File

The most basic operation you can do with Xcopy is copying a file from a source to a destination without using any options. For example, the command below will copy a text file to a destination directory, and the file name will be the same.

XCOPY C:WorkareaXCopyDemoNewFile.txt C:WorkareaXCopyDemoFolder

You can also copy the source file and change the destination filename by running the command below.

XCOPY C:WorkareaXCopyDemoNewFile.txt C:WorkareaXCopyDemoFolderAnotherFile.txt

Copying Files to a New Folder

With Xcopy, you can copy files and create the destination directory on the fly. To do so, you need to append the /I option to the Xcopy command.

For example, the command below copies the files from the C:WorkareaDemo folder to the D:Workarea folder. If the destination folder does not exist, Xcopy creates the destination folder using the /I option.

XCOPY C:WorkareaDemo D:Workarea /I

Copying All Files and Folders Recursively

Aside from copying files from one folder to another, Xcopy also lets you copy folders and files recursively. And there are two ways you can do a recursive copy—with and without empty folders.

:/>  Как быстро переключаться между файлами и 45 горячих клавиш?

To copy all files and directories while ignoring empty directories, append the /S option to the end of the Xcopy command, as shown below.

On the other hand, to include empty directories during the recursive copy, add the /E option instead to the command.

Including Hidden and System Files

By default, Xcopy does not include hidden and system files in copy operations. But if you need to force Xcopy to include hidden and system files, add the /H switch to the command.

The command below copies all files recursively, including hidden and system files. This command also ignores errors, creates the destination folders, and overwrites existing files.

XCOPY C:WorkareaDocuments D:WorkareaDocuments /S /H /C /Y

Preserving the Read-Only File Attribute

Another attribute that Xcopy can handle and preserve is the file’s read-only attribute. By default, when Xcopy copies a read-only file, it removes the file’s read-only attribute at the destination. To stop Xcopy from removing the read-only attribute, append the /K switch to the command.

For example, the command below copies a read-only file to another location, and the resulting destination file will still have a read-only attribute. This command will also overwrite the destination file if the file exists.

XCOPY C:WorkareaXCopyDemoNewFile.txt D:Workarea /I /K /Y

As a side-effect of preserving the file as read-only, Xcopy cannot overwrite the same file in future copy operations. But, you can force Xcopy to overwrite read-only files by adding the /R switch.

XCOPY C:WorkareaXCopyDemoNewFile.txt D:Workarea /K /R /Y

Filtering Files to Copy

Suppose there are multiple files in the source folder and subfolders you want to copy. Xcopy allows you to input wildcards as a way to filter which files to copy.

For example, the command below copies only the files with the .cs extension recursively from the root of the C: drive to the root of the E: drive. This command will also ignore errors and overwrites existing files without prompting for confirmation.

XCOPY C:*.cs E: /S /C /Y

Excluding Files and Folders from the Copy

A powerful feature of Xcopy is its ability to exclude files from the copy process. To use this feature, you can leverage the /EXCLUDE switch. This switch accepts the names of the file(s) that contain the exclusion lists.

To run Xcopy with exclusions, run the command below and specify the full path of the exclusion file to the /EXCLUDE switch. This command uses the C:WorkareaXCopyDemoExclude.txt file.

XCOPY C:WorkareaXCopyDemo C:WorkareaBackup /S /Y /Exclude:C:WorkareaXCopyDemoExclude.txt

The result? Xcopy runs to copy files but skips the xyz.txt, Exclude.txt, all files with .pdf and .png extensions, and all files under the exclude directory.

Performing a Differential Copy

When you need to backup files from one location to another, Xcopy has an option that lets you perform a differential backup. Instead of copying all files, a differential backup only copies the files where the modified date falls on or after a date that you specify to the /D:m-d-y switch.

For example, to copy only the files with the modified date on or after April 01, 2021, run the command below. Additionally, this command performs a recursive copy, ignores errors, and overwrites existing files at the destination.

XCOPY C:WorkareaXCopyDemo C:WorkareaBackup /D:04-01-2021 /S /C /Y

If you do not specify a date with the /D option, Xcopy will copy only the source files that are newer than the destination files.

Copying Files Based on the Archive Attribute

Typically, backup programs remove a file’s archive attribute after a backup operation. After modifying a file (i.e., edit and save), Windows automatically resets the files archive attribute.

If you create a script to backup files using Xcopy, you can use the archive attribute to determine whether to copy or backup the file.

To copy files with the archive attribute, you can take advantage of the /A and /M switches. Which one of these switches to use depends on whether you want to preserve the file’s archive attribute or not.

XCOPY C:WorkareaDemo D:WorkareaTest /A /S /Y

In contrast, to remove the source file’s archive attribute after copying to the destination, specify the /M switch instead.

XCOPY C:WorkareaDemo D:WorkareaTest /M /S /Y

Retaining File Owner and ACL Information

Imagine creating a backup of an entire profile folder. Each file may have different owners or unique permissions. Should you need to restore those files, you’d want the same owners and permissions intact.

To copy files and retain the owner and ACL information, add the /O parameter to the xcopy command, as shown below.

XCOPY C:Workarea D:Work /O /I /Y

Apart from retaining the owner and ACL information, you can also include the files’ audit settings. Copying audit settings can be useful if your organization applies group policy objects (GPO) to audit files.

To include file audit settings when copying files with Xcopy, use the /X switch. The /X switch implies the /O switch, too, so you don’t have to use both switches at the same time.

XCOPY C:Workarea D:Work /X /I /Y

Copying Files and Folders Over the Network

Not only can Xcopy copy files between locations on the same or different disks, but it can also copy files over the network. Unfortunately, copying files over the network is not always reliable. Network connections may suffer from short interruptions and, in some cases, total loss of connection.

Luckily, you can run Xcopy in restartable mode. Meaning, even if the copy progress stops due to a network error, the copy can resume after re-establishing the network connection. To run Xcopy in restartable mode, you’ll need to add the /Z switch to the command.

For example, the command below performs a recursive file copy from the C:Workarea folder to a network location. The /Z parameter makes Xcopy run in restartable mode.

XCOPY C:Workarea “\SERVER01Backup” /S /Z

Using the /Z switch, Xcopy also displays the file copy progress in percentage.

Copy Files Using Unbuffered I/O

Buffered I/O corresponds to how the operating system buffers disk reads and writes in the file system cache. While buffering speeds up subsequent reads and writes to the same file, it comes at a cost. As a result, unbuffered I/O (or a raw file copy) is the preferred method for copying a large file.

This copy method reduces the file system cache overhead and prevents the file system cache from being easily flushed with large amounts of file data.

To copy large files using unbuffered I/O, you can append the /J switch to the Xcopy command, as shown below.

XCOPY C:Workareaabc.mp4 D:Temp /I /J

Copying Files with Verification

Like any other tasks, copying files may not always return 100% successful results. Some files may become corrupted during transfer even if there are no visible errors.

With Xcopy, you can use the /V switch to verify that the destination and source files are identical based on their size after copying. Identical source and destination files indicate that the copy was successful and that file is intact.

The command below copies all files from C:WorkareaXCopyDemo to C:WorkareaBackup and verifies each file using the /V switch. The /F switch displays the source and destination files’ full path.

XCOPY C:WorkareaXCopyDemo C:WorkareaBackup /F /H /S /X /V

Copying Encrypted Files

Xcopy also supports copying encrypted files to destinations that do not support encryption. Using the /G switch, Xcopy copies encrypted source files and creates decrypted destination files.

Xcopy C:WorkareaXCOPYDemo C:WorkareaXCOPYDemoFolder /S /G

Copying Folder Structures

In some situations, backup scripts or programs may require you to pre-provision the destination before copying the files from the source. When needed, you can use Xcopy to replicate the source folder structure without the content.

To do so, run the Xcopy command with /T switch. Using the /T switch will cause Xcopy to copy only the directory tree structure to the destination but ignores the empty directories.

You can also add the /E switch to the command to include empty directories, as shown in the example command below.

Xcopy C:WorkareaXCOPYDemo C:WorkareaXCOPYDemoFolder /T /E

Создание архива, имя которого содержит дату и время.

Решим следующую задачу – нужно создать архив файлов, находящихся в каталоге
C:Program FilesFAR. Имя архивного файла должно состоять из текущего времени
(часы.минуты.секунды – ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты
(день.месяц.год – ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR.
Формат запуска для создания архива:

a – команда создания архива.
-r – ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).