Как запустить программу из командной строки?
Сразу стоит сказать, что все нижеописанные методы в большинстве своем схожи. Однако командная строка – это специфический инструмент, и в зависимости от того, какие атрибуты вы будете использовать для открытия приложения, будут меняться свойства последнего.
Параметры команд и получение помощи
Прежде чем приступать к изучению команд, следует понимать два важных момента:
- У многих команд существуют изменяемые параметры, уточняющие выполнение командой той или иной функции.
- По любой команде можно получить помощь прямо в окне интерпретатора. Для этого следует сразу после команды вписать ” /?
“, что также является параметром.
Возьмем, к примеру, одну из наиболее востребованных команд ping
. Впишите в консоль следующую строку:

Подобным способом можно получить справку по большинству команд (в основном по тем, у которых имеются атрибуты).
Используя path
Третий способ, как запустить программу из командной строки, подразумевает использование команды patch. Ее суть заключается в запоминании указанной директории. То есть вам необходимо ввести адрес не к самому файлу, а к папке, где он находится. Например, нужно открыть Total Commander, который находится по следующему адресу:
c:\program files\total commander Тогда в консоли введите следующую команду:
patch "c:\program files\total commander" Командная строка запомнит директорию, которую вы указали, и будет запускать все файлы из нее, если вы введете их название. Таким образом для запуска Total Commander останется лишь написать его название:
totalcmd ![]()
Запуск системных компонентов и программ из командной строки
Здесь стоит отметить, что запускать системные компоненты и программы все же проще не напрямую из командной строки, а из ранее упомянутого приложения “Выполнить”. Но разницы в синтаксисе (написании) самих команд никакой нет. В обоих случаях после ввода команды достаточно нажать “Enter”.
Вот список наиболее востребованных команд для запуска системных приложений и компонентов:
- control
— запуск “Панели управления Windows”.

- regedit
— запуск “Редактора реестра”.

- devmgmt.msc
— запуск “Диспетчера устройств”.

- taskmgr
— запуск “Диспетчера задач”.

- services.msc
— запуск приложения “Службы”.

- appwiz.cpl
— “Программы и компоненты” (“Установка и удаление программ”).

И это далеко не полный список команд запуска системных приложений и компонентов, а лишь самые востребованные у нас — обычных пользователей.
А вот 4 команды для запуска предустановленных (стандартных) в Windows программ:
- calc
— запуск “Калькулятора”.

- mspaint
— запуск графического редактора “Paint”.

- notepad
— запуск текстового редактора “Блокнот”.

- wordpad
— запуск текстового редактора “WordPad”

Вообще, из командной строки можно запустить любую другую программу или файл. Рассмотрим, как это сделать, а заодно познакомимся с некоторыми командами по управлению файлами и папками.
Создание файлов.
В Windows нет специальной команды для создания файла, но без нее можно легко обойтись несколькими способами:
COPY CON myfile.txt
При выполнении этой команды данные с клавиатуры (устройство CON) будут заноситься в файл myfile.txt. Нажатие клавиши F6 или комбинации CTRL-Z завершит вывод.
При выполнении этой команды будет создан файл myfile.txt, содержащий символ “1”
COPY CON > myfile.txt < xyz
При выполнении этой команды, как и в первом случае, используется копирование
с консоли в файл, но вместо данных с клавиатуры используется ввод с
несуществующего устройства xyz
. Система выдаст сообщение, о том, что такого устройства
не существует, но пустой файл myfile.txt
будет успешно создан.
Совсем простой вариант – копирование с фиктивного устройства с именем nul
в файл.
copy nul myfile.txt
Если вам часто приходится создавать пустые файлы, можно подготовить свой
командный файл (например – newfile.bat или, что еще лучше, – nf.bat),
а имя создаваемого файла передавать ему в качестве параметра при запуске.
copy nul %1
Поместите этот командный файл в системный каталог
(C:\windows\system32) или любой другой, имеющийся в путях поиска,
задаваемых переменной PATH).
Таким образом, мы получили команду nf
для создания пустого файла в
командной строке Windows.
Присвоение съемному диску одной и той же буквы.
Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен
всегда под одной и той же буквой, независимо от того, на каком компьютере он используется
и как он подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST.
Выберем для съемного диска желаемую букву, например – X
. Имя диска, с которого
был запущен командный файл доступно как переменная %~d0
. Создаем командный файл
следующего содержания:
subst X: %~d0\
что означает – создать виртуальный диск X:, которому сопоставлен
физический диск, откуда был выполнен запуск командного файла.
Дополнительное представление о подстановочных значениях
переменной %0
можно получить из командного файла следующего
содержания:
Создание поколений архивов по датам и времени.
Решим следующую задачу – нужно создать архив файлов, находящихся в каталоге
C:\Program Files\FAR. Имя архивного файла должно состоять из текущего времени
(часы.минуты.секунды – ЧЧ. ММ. СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты
(день.месяц.год – ДД. ММ. ГГГГ). Для архивирования будем использовать архиватор RAR.
Формат запуска для создания архива:
RAR a -r < путь и имя архива > < Путь и имя архивируемых данных >
a
– параметр, задающий добавление файлов в архив (для создания архива).
-r
– параметр, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).
Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего
воспользуемся следующими факторами:
Дата, получаемая из переменной %DATE% при стандартных настройках региональных установок
выглядит следующим образом:
Пн 21.01.2005
– День недели(2 символа)-Пробел-дата(10 символов)
Для примера, создадим каталог командой MD < имя каталога >
Создаем в памяти временную переменную VDATE и присваиваем ей значение
переменной окружения DATE, без первых 3-х символов – 20.01.2018:
Создаем каталог на диске C:, имя которого = текущая дата из переменной VDATE:
MD C:\%VDATE%
После выполнения этой команды на диске C: будет создан каталог с именем 20.01.2018
Время, получаемое из переменной %TIME%:
14:30:59.93
– Часы, минуты, секунды, сотые доли секунды.
Сотые доли – это в имени файла архива, пожалуй, лишнее. Создаем временную
переменную VTIME и присваиваем ей текущее время без последних 3-х символов
Теперь VTIME = 14:30:59, но знак ” : ” в имени файла использовать нельзя,
поэтому заменим его на точку.
set VTIME=%VTIME::=.%
Переменная VTIME примет значение 14.30.59 . Его вполне можно использовать в качестве имени файла.
Для запуска архивирования будет использоваться команда:
rar a -r C:\%VDATE%\%VTIME%.rar “C:\Program files\far\*.*”
Предполагается, что архиватор rar.exe
находится в текущем каталоге или в каталоге исполняемых файлов,
определяемом переменной PATH. Например, при установленном в системем, бесплатном архиваторе 7-Zip
, можно
использовать командную строку с указанием полного пути исполняемого файла:
“C:\Program Files\7-Zip\7z.exe a -r %TO%\%VDATE%\%VTIME%.7z” “C:\Program files\far\*.*”
Теперь можно создать командный файл с содержимым:
set VDATE=%date:~3%
md c:\%VDATE%
set VTIME=%time:~0,-3%
set VTIME=%VTIME::=.%
rar a -r C:\%VDATE%\%VTIME%.rar “C:\Program files\far\*.*”
Такой командный файл можно выполнять через автозагрузку, или как часть скрипта,
при входе пользователя в домен, либо с помощью планировщика в заданное время, и у вас
всегда будут в наличии упорядоченные по времени архивы критических данных.
Создание архивов с использованием переменных профиля пользователя.
Этот командный файл создает архивы содержимого папки
“Мои Документы” пользователя, размещая их в каталог
C:\ARHIV\Мои документы\Имя пользователя\Дата\время
Выполнение команд по расписанию.
В операционных системах семейства Windows существует утилита командной строки для управления заданиями планировщика at.exe
. Главное ее назначение – выполнить команду или пакетный файл в указанное время на локальном или удаленном компьютере. В настоящий момент утилита считается устаревшей и
Microsoft рекомендует использовать вместо нее более функциональную, но и относительно сложную в использовании Schtasks.exe
. Тем не менее, для освоения приемов работы с планировщиком заданий, возможностей at.exe
вполне достаточно.
Формат командной строки:
Параметры командной строки:
\\имя_компьютера
– Имя удаленного компьютера. Если этот параметр опущен,
то используется локальный компьютер.
код
– Порядковый номер запланированной задачи. Указывается если нужно отменить уже запланированную задачу с помощью ключа /delete
.
/delete
– Отмена запланированной задачи. Если код задачи опущен,
отменяются все задачи, запланированные для указанного компьютера.
/yes
– Подавление запроса на подтверждение при отмене всех запланированных задач.
время
– Время запуска команды.
/interactive
– Разрешение взаимодействия задачи с пользователем,
работающим на компьютере во время запуска задачи. Задачи, запущенные без этого ключа невидимы для пользователя компьютера.
“команда”
– Команда или имя пакетного файла.
Примеры использования:
– Аналог “будильника” , – всплывающие окна с текстом, напоминающие
текущему или указанному пользователю о необходимости
выполнения каких-нибудь действий. Для отправки сообщения пользователю
Win2k/XP можно использовать стандартную утилиту NET. EXE
, а для более поздних версий Windows – MSG. EXE
. Необходимо учитывать, что
утилита msg.exe прекрасно подходит для обмена сообщениями между сеансами локальных и терминальных пользователей в пределах одной системы, однако, в случаях обмена между разными компьютерами локальной сети, потребуется изменить некоторые настройки безопасности, принятые по умолчанию в операционных системах Windows 7 и более поздних. Подробности – по ссылке с описанием утилиты, приведенной выше.
AT 13:50 net.exe send * Пора пить кофе
AT 13:50 c:\windows\system32\msg.exe * Пора пить кофе
– Просмотр списка запланированных задач:
– Удаление уже спланированных задач:
AT 3 /DELETE
– удаление задачи с номером 3
AT /DELETE /YES
– удаление всех задач
Создаваемые в командной строке задания доступны через оснастку планировщика заданий панели управления.
Остановка и запуск системных служб.
Для остановки и запуска служб из командной строки можно воспользоваться стандартными утилитами NET. EXE и SC. EXE. Последняя обладает широкими возможностями для конфигурирования, опроса состояния, остановки, запуска, удаления и добавления системных служб.
NET. EXE STOP < имя службы >
NET. EXE START < имя службы >
Возможно использование как короткого, так и полного имени (“Dnscache” – короткое,
“DNS-клиент” – полное имя службы).
Имя службы, содержащее пробелы заключается в двойные кавычки. Пример перезапуска службы “DNS-клиент”
net stop “DNS-клиент”
net start “DNS-клиент”
Те же действия, но с использованием короткого имени:
net stop Dnscache
net start Dnscache
Полное имя службы можно скопировать из “Службы” – < Имя службы > – “Свойства” – “Выводимое имя”
Возможности утилиты sc.exe
отличаются в разных версиях ОС Windows, но функции опроса состояния, остановки и запуска служб одинаковы. Кроме того, данная утилита позволяет управлять службами не только на локальной, но и на удаленной машине. Примеры:
sc.exe stop DNSCache
– остановить службу DNSCache на локальном компьютере.
sc \\COMP0 start DNSCache
запустить службу DNSCache на компьютере COMP0
Подсказку по работе с утилитой можно получить, введя:
sc /?
Выдача на экран значения переменной ERRORLEVEL.
Примеры запуска:
echoEL.bat NET SHARE
– будет выполнена команда NET SHARE (выдать список разделяемых сетевых ресурсов) и выдан код ERRORLEVEL
Диалог с пользователем
Для диалога с пользователем можно использовать команду:
SET /P < имя переменной >=< текст >
при выполнении которой, на экран выдается текстовое сообщение < текст > и ожидается
ввод ответного текста. Пример – выполним запрос пароля и присвоим его значение
переменной “pset”:
Создадим командный файл, демонстрирующий использование CHOICE.
Он будет реагировать на нажатие клавиш “1”,”2″,3″ и “0” .
При нажатии “0” выполняется завершение, а при нажатии остальных – сообщение пользователю. Если в
течении 10 секунд ничего не нажато – завершение.
Задержки в командных файлах
При выполнении некоторых операций, например, при остановке или запуске системных служб, командный файл получает управление еще до того, как реально выполнится предыдущая команда. В результате возможна неправильная интерпретация программных событий, вызванная отсутствием задержки, необходимой для выполнения предыдущей команды. В ОС Windows Vista и более поздних для организации задержек используется стандартная команда TIMEOUT
. Формат командной строки:
Параметры командной строки:
/T таймаут
– Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд.
/NOBREAK
– Игнорировать нажатия клавиш, ждать указанное время.
/?
– Вывод справки по использованию.
Примечание: значение таймаута, равное -1
задает неограниченное время
ожидания до нажатия клавиши.
TIMEOUT /?
– отобразить краткую справку по использованию команды
TIMEOUT /T 10
установить режим ожидания 10 секунд. На экран выдается информационное сообщение с отсчетом оставшегося до завершения интервала времени ( 10, 9, 8 секунд . . . ):
Время ожидания 10 сек., нажмите любую клавишу для продолжения
Нажатие любой клавиши приведет к прерыванию таймаута и переходу к выполнению следующей команды.
TIMEOUT /T 300 /NOBREAK
– установить интервал ожидания 300 секунд. Нажатие любых клавиш на клавиатуре игнорируется.
Также, имеется удобная, но входящая только в в состав дополнительного пакета Resource Kit, команда SLEEP
.
Формат командной строки:
sleep -m миллисекунды
sleep 10
установить режим ожидания 10 секунд.
sleep –m 2500
– установить интервал ожидания 2500 миллисекунд (2.5 секунды).
Для прерывания команды sleep
можно использовать комбинации клавиш CTRL+C или CTRL+Break.
Также можно воспользоваться ранее рассмотренной
командой CHOISE без вывода текста и с автоматическим формированием ответа через
nn секунд (1-99):
choice.com /T:y,10 /N
– задержка на 10 секунд
Более универсальный способ основан на опросе командой PING интерфейса замыкания на себя (петлевого интерфейса) нужным количеством пакетов. P ING для петлевого интерфейса (имя хоста – localhost или IP- адрес 127.0.0.1) выполняется без реальной передачи данных, т.е. практически мгновенно, а интервал между отправкой ICMP-пакетов составляет 1 секунду. Указывая количество пингов с помощью ключа “-n” можно получить задержку на n секунд:
ping 127.0.0.1 -n 30 > nul – даст задержку на 30 секунд
Поиск компьютеров с запущенным приложением
В состав современных ОС семейства Windows входит стандартная утилита командной строки TASKLIST
, предназначенная для получения списка процессов, выполняющихся на локальном или удаленном компьютере в данный момент времени. При использовании команды без параметров, отображается список процессов выполняющихся на локальном компьютере. Для получения списка процессов на удаленном компьютере используется ключ /S
:
tasklist /S comp0
– отобразить список процессов, выполняющихся на компьютере comp0
.
Для обнаружения выполняющегося процесса с конкретным именем, например, chkdsk.exe
используется выполнение TASKLIST в цепочке с командой FIND:
При необходимости, в командной строке указывается имя пользователя и пароль для доступа к удаленному компьютеру:
Кроме стандартной утилиты tasklist.exe
можно воспользоваться утилитой PSList
из комплекта сервисных программ PSTools
сайта Windows Sysinternals.
Краткое описание пакета программ PSTools с примерами.
Утилита PSList проще в использовании и работает немного быстрее, по сравнению с TASKLIST, что особенно заметно при ее использовании для получения списка процессов, выполняющихся на удаленном компьютере.
– старшая часть адреса
set /A IPLAST=1
– младшая часть. Ключ /A означает вычисляемое числовое выражение
– значение полного IP-адреса.
Командная строка для PSlist будет выглядеть следующим образом:
pslist \\%IPFULL% %1
Теперь осталось только циклически запускать PSlist, прибавляя в каждом цикле единицу к младшей части адреса,
пока ее значение не достигнет 30 и анализировать значение ERRORLEVEL после выполнения. Для анализа результата будем
выполнять переход командой:
обеспечивающей переход на метку REZULT0 при обнаружении процесса и на REZULT1 – при его отсутствии.
Окончательное содержимое командного файла:
Пользователь, выполняющий данный командный файл должен обладать правами администратора по отношению к сканируемым компьютерам. И, если текущий пользователь таковым не является, то в параметры запуска утилит PSlist.exe и PSkill.exe нужно добавить ключи, задающие имя пользователя и пароль. Вместо данных утилит можно использовать стандартные TASKLIST и TASKKILL
Поиск компьютеров с запущенным приложением по списку.
В предыдущем примере использовался прямой перебор IP-адресов компьютеров в
локальной сети, что не всегда удобно, поскольку в процедуру опроса оказываются
вовлечены и выключенные компьютеры. Решим задачу другим способом. Создадим текстовый
файл со списком компьютеров и опросим их по этому списку.
Список можно получить из сетевого окружения с использованием команды:
net.exe view > comps.txt
После выполнения такой команды файл comps.txt
будет содержать список
следующего вида:
Имя сервера Заметки
< 2 пустых строки >
———————–
\\AB1
\\AB2
\\ALEX
\\BUHCOMP
\\PC2
\\SA
\\SERVER
Команда выполнена успешно.
Обрабатывать содержимое этого текстового файла будем с помощью команды
FOR
с ключом /F
:
Данная команда позволяет получить доступ к строкам в текстовом файле с использованием ключей:
skip=n
– пропустить n
строк от начала файла (в нашем случае – 4 строки)
eol=< символ >
– не использовать строки, начинающиеся с заданного символа.
(в нашем случае – пропустить последнюю строку, начинающуюся с символа “К” – “Команда выполнена успешно”
tokens=n
– брать для обработки n-е слово в строке (в нашем случае – 1-е слово)
Окончательный вид командного файла:
Обратите внимание –
в пакетных файлах для переменных команды FOR используется два знака процента (запись
%%переменная
вместо %переменная
) и имена переменных
учитывают регистр букв ( %i
отличается от %I
).
Работать это будет следующим образом – пропускаются первые 4 строки текстового файла
со списком компьютеров, и далее в цикле переменной I
присваивается значение первого
слова (текст от начала строки до разделителя – пробела) и выполняется утилита
PSlist.exe, для которой в качестве имени компьютера используется значение этой переменной.
Если ERRORLEVEL менее 1 – задача с искомым именем присутствует в списке процессов и
выполняется отправка сообщения с помощью NET SEND или MSG.
Окончательное содержимое командного файла:
С использованием команды MSG, последняя строка будет выглядеть следующим образом:
IF NOT ERRORLEVEL 1 msg.exe /SERVER:%COMPUTERNAME% Компьютер – %%i процесс – %1
Выключение компьютеров по списку, созданному на основе сетевого окружения.
Предыдущий пример можно использовать для создания командного файла, задачей которого является выключение всех компьютеров в локальной сети. Выключение питания производится утилитой PsShutdown.exe из упоминаемого ранее пакета утилит PSTools или стандартной командой shutdown –s
. Как и в предыдущем примере,
сначала создается файл со списком компьютеров на основе сетевого окружения, а затем
выполняется их поочередное выключение, при условии, что имя компьютера не равно текущему (иначе он может выключиться до окончания выполнения командного файла). Содержимое файла:
IF /I %%i NEQ %COMPUTERNAME% shutdown -s -t 0 -m %%i
Имя домена или рабочей группы можно менять:
set MyDomain=
При необходимости, добавляются параметры -u -p для psshutdown.exe .
Работа с оконными приложениями.
Допустим, вам нужно из одного и того же командного файла запустить notepad.exe
и cmd.exe. Если просто вставить строки
notepad.exe
cmd.exe
то после запуска notepad.exe выполнение командного файла приостановится и пока не
будет завершен notepad, cmd.exe не запустится. Самый простой способ обойти эту
проблему – использовать стандартную утилиту Windows start.exe
.
Попробуйте создать командный файл следующего содержания:
start /MAX notepad.exe
start “This is CMD. EXE” /MIN cmd.exe
net send %COMPUTERNAME% NOTEPAD and CMD running.
После выполнения этого командного файла вы увидите стартовавшие, в развернутом окне
(ключ /MAX) блокнот, в свернутом окне (ключ /MIN) командный процессор CMD. EXE и
окно с сообщением net.exe. Стандартный заголовок окна cmd.exe заменен на текст
“This is CMD. EXE”. Обратите внимание на то, что заголовок окна можно опускать, но
особенность обработки входных параметров утилитой start.exe может привести к
неожиданным результатам при попытке запуска программы, имя или путь которой содержит
пробел(ы). Например, при попытке выполнить следующую команду:
start “C:\Program Files\FAR\FAR. EXE”
Из-за наличия пробела в пути к исполняемому файлу,
строка для запуска FAR. EXE должна быть заключена в двойные
кавычки, однако формат входных параметров для start.exe предполагает наличие заголовка
окна, также заключаемого в двойные кавычки, в результате чего “C:\Program Files\FAR\FAR. EXE”
интерпретируется не как исполняемая программа, а как заголовок окна.
Для того, чтобы подобного не случилось, нужно
использовать любой, пусть даже пустой, заголовок:
start “” “C:\Program Files\FAR\FAR. EXE”
Из-за специфического поведения, эта утилита многими антивирусными программами определяется как вирус, поэтому для нормальной работы нужно занести ее в исключения антивируса.
Cmdow.exe – крошечная утилита, работающая в Windows без установки.
Позволяет получить список окон, перемещать, изменять размеры, переименовывать,
сворачивать/разворачивать, активировать/деактивировать, закрывать, скрывать окна
приложений и многое другое. Справку можно получить по команде:
cmdow /?
Используется около 30 ключей. Описание на русском языке найдете
здесь.
Некоторые примеры:
cmdow.exe
или cmdow.exe > wins.txt
– выдать информацию обо всех окнах на экран или в файл wins.txt
cmdow /T
– выдать информацию об окнах, отображаемых на панели
задач рабочего стола.
Информация содержит колонки:
Handle – дескриптор окна – шестнадцатеричное число, связанное с данным окном.
Lev – уровень окна. Приложение может быть многооконным с несколькими уровнями окон.
Pid – идентификатор процесса, породившего окно.
-Window status- – состояние окна (видимое – Vis, скрытое – Hid, активное – Act,
свернутое – Min и т.п.
Image – программа вызвавшая окно.
Caption – название окна
Если вы хотите, чтобы ваш командный файл выполнялся скрытно,
добавьте в него строку:
cmdow @ /HID
– скрыть текущее окно
Ниже командный файл с комментариями, демонстрирующий возможности работы cmdow:
Пример командного файла, закрывающего окна Проводника Интернет
(IEXPLORE. EXE):
Типовые ошибки в командных файлах.
Как правило, причиной является тот факт, что на момент выполнения вашего командного файла переменные среды могут быть совсем другими, чем на момент его написания и запуска из командной строки. Например, в командном файле используется запуск приложения myprog.exe, находящегося в каталоге SCRIPTS на диске D: . Если в командном файле используется имя модуля без полного пути
и если каталог D:\SCRIPTS не прописан в путях поиска (переменная PATH ) то модуль MYPROG. EXE может быть найден и выполнен только если текущим каталогом является D:\SCRIPTS. Но если вы укажете полный путь к myprog.exe
То программа будет найдена и выполнена в любом случае.
Есть еще одна тонкость – нередко программа, указанная в командном файле использует для поиска своих компонент (dll, ini и т.п. ) собственный каталог. Но на момент ее выполнения текущим каталогом может быть любой (чаще всего – системный каталог Windows). Естественно, компоненты не находятся и программа не выполняется. Для устранения проблемы добавьте в командный файл команды, обеспечивающие переход в нужный каталог. Например, программа myprog.exe должна выполняться в каталоге D:\SCRIPTS:
Rem Сменим текущий диск
Rem перейдем в каталог SCRIPTS
Прием со сменой каталога наиболее универсален и, как правило, всегда срабатывает.
Причина в том, что при создании командных файлов вы
использовали текстовый редактор, в котором русские символы представлены
не в DOS-кодировке. Если в приведенном выше примере перезапуска службы “DNS-клиент”
вы используете неверную кодировку, то русская часть имени службы не будет опознана
из-за неверной кодировки и будет выдано сообщение, что указанная служба не
установлена. Чтобы избежать проблем с русскими символами в командных файлах,
используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор
файлового менеджера FAR
.
Переключение между кодировками в редакторе осуществляется нажатием F8
.
С помощью FAR можно легко осуществлять перекодировку, скопировав (вырезав) текст в буфер обмена, затем
нажав F8 и вставив текст из буфера.
Обычно это вызвано применением в командных файлах абсолютных значений вместо
переменных среды окружения. Вместо C:\WINDOWS правильнее использовать %SYSTEMROOT%, потому,
что на другом компьютере система может быть установлена в другой каталог или на другой диск.
Старайтесь вместо имени командного файла использовать переменную %0 и ее
подстановочные
варианты (%~d0 – диск с которого запущен сценарий, %~dp0 – полный путь и т.д.).
Строки с переменными, принимающими значения имен файлов и каталогов лучше
заключать в кавычки. Командная строка
DIR %ProgramFiles%
не выдаст вам содержимого каталога C:\Program Files , поскольку из-за наличия пробела будет
интерпретирована как
DIR C:\Program
Командная строка
DIR “%ProgramFiles%”
выполнится верно.
Старайтесь использовать команды Setlocal и Endlocal, чтобы не оставлять мусор
из переменных, созданных или модифицированных командным файлом.
<br
Использование командных файлов в сценариях регистрации
пользователей .
Командные файлы удобно использовать для выполнения каких-либо
действий при регистрации пользователя в
домене. Делается это с помощью вкладки “Profile”
свойств пользователя домена.

Сами командные файлы скриптов должны
находиться в сетевой папке Netlogon (Windows\ Ssysvol\ Domain\ Scripts , для Win2k –
WINNT\SYSVOL \ DOMAIN \ SCRIPTS) контроллера
домена, доступ на чтение к которой должен
быть у всех пользователей, проходящих
регистрацию.
Страницы близкой тематики:
Список команд,
используемых в командной строке Windows. .
– Перечень команд CMD Windows и краткая справка с примерами
Работа с сетью в командной строке
– Примеры использования командной строки для диагностики сетевых проблем, анализа состояния и настроек сетевых устройств.
Настройка командной строки Windows
– Примеры настроек приложения командной строки.
Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой “Поделиться”
</br
Примеры
Для того чтобы запустить программу Myapp, но при этом остаться в текущем окне командной
строки, следует использовать следующую команду:
Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать
раздел форума
этого сайта (требуется регистрация).
ПОЛЕЗНОЕ ВИДЕО

Уверенный пользователь трех домашних ПК с многолетним опытом, “компьютерщик” для всех родственников, соседей и знакомых, в течении 13-ти лет автор более тысячи обзоров интересных и полезных программ для компьютера на собственном софтовом блоге OptimaKomp. RU



Работа с файлами и папками из командной строки
Бывают ситуации, когда невозможно запустить стандартный файловый менеджер “Проводник Windows”. Например, из-за действия вирусов-блокировщиков или при системных сбоях. В любом случае все, что можно сделать при помощи “Проводника”, можно сделать и при помощи командной строки. Начнем с самого простого — просмотра содержимого папок.

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

Объекты, напротив которых написано <
DIR>
— это папки, все остальное — файлы (напротив них указан размер в байтах).
Команду dir
можно применять вообще папкам, расположенным в вообще любом месте на жестком диске. Для этого после команды следует указать путь до каталога. К примеру, для просмотра содержимого папки ” Windows
” на диске “C:” следует ввести команду:
Запомните одно простое правило. Если в именах папок/файлов присутствуют пробелы, их следует писать в двойных ( “имя папки или файла”)
кавычках.
Открытие файла из командной строки
. Для открытия файла достаточно вписать его полное название вместе с расширением в командную строку. Что не вводить имя файла целиком, используйте клавишу “Tab” (с ее помощью можно поочередно перебирать имена всех объектов в текущей папке).

Переход в другую папку
. Для перехода в папку используется команда cd
, после которой следует прописать путь к открываемой папке либо просто ее имя (если она расположена в нашем текущем местоположении на жестком диске).
Перейдем в папку “Music”. Т.к. она находится в текущем каталоге, достаточно ввести в консоль:

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

- Допустим, нам известно, что на диске ” E
” существует папка ” Install
“, а в ней — пака ” Web
“. Перейти в нее можно одной командой:

Запуск/открытие программы/файлы в другой папке или на другом диске
. Запустим программу, расположенную где-нибудь глубоко на диске. Для запуска файла или программы можно просто указать полный путь до него. Текущее местоположение в этом случае не имеет значения. Запустим, например, текстовый редактор ” Notepad++
” одной командой:

Обратите внимание, что имя папки “Program Files” взято в кавычки, т.к. в нем присутствует пробел.
Создание, удаление и переименование файлов и папок
. Из командной строки можно выполнить все эти операции над файлами и папками.
- Создание простого текстового файла — copy nul простой_текстовый_файл.
txt
. Перед названием файла можно указать путь до конечной папки, в которой тот будет создан (если не указать, файл создастся в текущей папке).

- Создание папки — mkdir папка
. Папка также создается в текущем местоположении.

- Удаление файла (или нескольких) — del простой_текстовый_файл.txt
(если требуется удалить несколько файлов, просто вписываем их имена друг за другом через пробел). Удаляем созданный ранее файл. - Удаление папки — rmdir папка
. Удаляем созданную ранее папку.

- Переименование папки/файла — ren простой_текстовый_файл.
txt новое_имя_файла.
txt
или ren папка новое_имя_папки
. Переименуем созданный файл и папку.

Через командную строку можно выполнить и ряд других операций над файлами и папками, включая копирование, перемещение, применение/изменение атрибутов (скрытый, системный, только для чтения и т.д.), слияние и т.д.
Как открыть командную строку в Windows
Это была поднимающая настроение пауза
, а теперь снова делаем серьёзные, даже суровые лица и идём искать командную строку в Windows.

- Находим в Проводнике папку C:\Windows\System32 и запускаем «cmd.exe»…


- Ещё можно через меню кнопки «Пуск» перейти в «Служебные — Windows»…


Предисловие
Наивно предположил, что она удаляется обычным способом, как все приличные и воспитанные компьютерные программы (не описал данный момент в статье).
Оказалось (вычитал на официальном сайте автора утилиты), что для удаления надо всего-лишь запустить её в командной строке Windows, от имени администратора, да ещё и с определённым аргументом.
Главное, что написано это было таким «обыденным тоном», как будто простой смертный пользователь компьютера всю эту процедуру должен по-любому уметь делать с самого своего рождения.

Понятия не имел, как это делается — узнал, научился и делюсь этой информацией (решил отдельную статью написать, ведь это знание может пригодиться не только для удаления одной определённой программы).
- Некоторые из консольных команд можно выполнить лишь из учетной записи администратора. Потому лучше сразу запомнить, как запускать интерпретатор с максимальным количеством прав доступа к системе. В ОС Windows 7/8/10 делается это просто:
Откройте “Поиск” в/около меню “Пуск”.
Впишите поле поиска “Командная строка”.
В результатах поиска отобразится нужная нам программа. Кликните по ней правой кнопкой мыши, затем выберите из выпадающего меню пункт “Запустить от имени администратора”.

Но для выполнения простых команд консоль Windows можно запускать и без прав администратора. Проще всего это сделать следующим образом:
- Нажмите на клавиатуре клавиши “Win” и “R”.
- Откроется окно “Выполнить”.
- Впишите в него команду cmd
и нажмите “ОК”.

Так или иначе, системное приложение “Командная строка Windows” будет запущена и готова выполнению пользовательских команд:

Переходы и метки.
В командных файлах можно использовать команды условного перехода, меняющие логику их работы в зависимости от выполнения определенных условий. Для иллюстрации приемов использования условных переходов создадим командный файл, целью которого будет присвоение заранее определенной буквы диска для съемных носителей, в качестве которых будут использоваться флэш-диски. Условия таковы – есть 2 флэш-диска, один из которых должен быть виден в проводнике как диск X: а второй – как диск Y: независимо от того, в какой порт USB они подключены и какая буква назначена им системой. Будем считать, что реальные диски могут быть подключены как F: или G: Опознавание дисков будем выполнять по наличию файла с определенным именем (лучше такой файл сделать скрытым в корневом каталоге и назвать его как-нибудь необычно):
Flashd1.let
– на первом дискеFlashd2.let
– на второмТаким образом, задача командного файла заключается в том, чтобы проверить наличие на сменных дисках F:
и G:
файлов Flashd1.let
или Flashd2.let
и, в зависимости от того, какой из них присутствует, присвоить диску букву X:
или Y:Для поиска файла на диске используем команду IF EXIST
:IF EXIST имя_файла команда
В качестве команды проще всего воспользоваться SUBST
, сопоставляющей имя диска и каталог.SUBST X: C:\
– создает виртуальный диск X:, содержимым которого будет корневой каталог диска C:Создаем командный файл setXY.bat
со следующими строками:
IF EXIST G:\flashd1.let SUBST X: G:\
IF EXIST F:\flashd1.let SUBST X: F:\
IF EXIST G:\flashd2.let SUBST Y: G:\
IF EXIST F:\flashd2.let SUBST Y: F:\Желательно обойти выполнение SUBST, если виртуальные диски X: и Y: уже созданы, (или удалять их, используя SUBST с параметром –d перед подключением ). Модифицируем командный файл с использованием команды GOTO
– передачи управления строке пакетного файла по метке.Метка должна находиться в отдельной строке и начинаться с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало сообщений об ошибке:
REM если не существует X: – то перейдем на метку SETX
IF NOT EXIST X:\ GOTO SETX
REM если существует X: – перейдем на проверку наличия Y:
IF EXIST G:\flashd1.let SUBST X: G:\
IF EXIST F:\flashd1.let SUBST X: F:\
REM если Y: существует – завершим командный файл.
IF EXIST Y:\ GOTO EXIT
IF EXIST G:\flashd2.let SUBST Y: G:\
IF EXIST F:\flashd2.let SUBST Y: F:\
Как открыть командную строку Windows?
REM выход из командного файла
ERRORLEVEL
В качестве команды в строке командного файла можно использовать также командный файл. Причем, для передачи с возвратом обратно к точке выполнения вызывающего командного файла используется
команда
CALL
. Создадим командный файл
test.bat 
, следующего содержания:
1.bat
PAUSE
test.bat
test.bat
- CALL
- Нажмите ПКМ по ярлыку программы.
- Выберите пункт “Свойства”.
- Перейдите на вкладку “Ярлык”.
- В поле “Объект” допишите нужный параметр после кавычек.
- Нажмите применить и закройте окно.
Выйти из зацикливания командного файла можно по нажатию комбинации CTRL-Break.

Возможно использование команды CALL для вызова процедуры внутри командного файла.
В этом случае в качестве аргумента используется не имя внешнего файла, а метка:
Как запустить программу с параметрами командной строки?
Теперь перейдем непосредственно к тому, как запустить приложение с консольными параметрами. К слову, делается это достаточно просто, даже командную строку открывать не придется – все выполняется в свойствах ярлыка.
![]()
Теперь программа будет запускаться с указанным параметром, вам всего лишь нужно дважды кликнуть по ее ярлыку. Вот мы и рассмотрели все способы, как можно запустить программу из командной строки. Ну а каким именно пользоваться – решать только вам.
Параметры командной строки
и – компилируемый язык. После сборки программа представляет собой исполняемый файл (мы не рассматриваем создание динамических библиотек,
драйверов и т.д.). Наши программы очень простые и не содержат библиотек времени выполнения (Runtime libraries), поэтому могут быть перенесены на компьютер с такой же
операционной системой (и подобной архитектурой) и там запущены.
Программа во время запуска может принимать параметры. Они являются аргументами функции main.
Общий вид функции main следующий
void main(int argc, char **argv) { .
} Первым аргументом argc является число переданных функции параметров. Второй аргумент – массив строк – собственно сами параметры. Так как параметры у функции могут
быть любыми, то они передаются как строки, и уже сама программа должна их разбирать и приводить к нужному типу.
#include <conio.h>
#include <stdio.h>
void main(int argc, char **argv) { printf("%s", argv[0]);
} 
Теперь научимся немного работать с командной строкой. Это понадобится для того, чтобы передавать аргументы нашей программе.
Сочетание клавиш Win+R вызывает окно “Выполнить”. Наберите в нём cmd и вы откроете командную строку. Также можно найти cmd.exe поиском в меню Пуск.
В юникс-подобных операционных системах можно вызвать программу “терминал”.

Мы не будем изучать сколько-нибудь много команд. Только те, которые понадобятся в работе.
Стандартная для всех операционных систем команда cd осуществляет переход к нужной папке. Существует два зарезервированных имени – . (точка) и . (две точки). Точка – это имя текущей папки.
никуда не переходит
. обращение к родительской папке
переход в родительскую папку
Для перехода по нужному пишется cd адрес. Например, нужно перейти на windows в папку C:\Windows\System32
В линуксе если нужно перейти в папку /var/mysql
Если путь содержит пробелы, то он пишется в двойных кавычках
cd "D:\Docuents and Settings\Prolog"
Терминал имеет следующие полезные особенности: если нажать стрелку вверх, по появится предыдущая выполненная команда. Если нажать tab, то терминал
попытается дополнить строку до известной ему команды, или дополнить путь, перебирая все папки и файлы в текущей папке.
Наберите cd C:\
нажимайте tab и смотрите, что происходит.
Ещё одна важная команда dir на windows и ls на linux, выводит на консоль содержимое текущей папки (той папки, в которой вы находитесь в данный момент)
Ваша программа вернула своё полное имя. Перейдите в папку, где располагается ваша программа и посмотрите её содержимое

Теперь, после того, как мы перешли в нашу папку, можно выполнить нашу программу. Для этого наберите её имя.

Заметьте – имя изменилось. Так как программа вызывается из своей папки, то выводится относительно имя. Теперь изменим программу и сделаем так, чтобы она выводила все
аргументы. которые ей переданы.
#include <conio.h>
#include <stdio.h>
void main(int argc, char **argv) { int i; for (i = 0; i < argc; i++) { printf("%s\n", argv[i]); }
} Соберите проект. Перед сборкой убедитесь, что программа закрыта. Теперь вызовите программу, передав ей разные аргументы. Для этого напишите имя программы и через пробел аргументы

Давайте теперь напишем программу, которая получает два аргумента числа и выводит их сумму
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void main(int argc, char **argv) { int a, b; if (argc != 3) { printf("Error: found %d arguments. Needs exactly 2", argc-1); exit; } a = atoi(argv[1]); b = atoi(argv[2]); printf("%d", a + b);
} Соберём и вызовем

Таким образом работает большинство программ. Кликая на ярлык, вы вызываете программу, на которую он ссылается. Большинство программ также принимают различные аргументы. Например,
можно вызвать браузер firefox из командной строки и передать аргументы
firefox.exe "www.mozilla.org" "learnc.info"
и он сразу же откроет в двух вкладках сайты по указанным адресам.
Многие стандартные команды также имеют параметры. В windows принято, что они начинаются с прямого слеша, в юниксе с минуса или двух минусов. Например
выводит только папки, а в терминале linux
ls -l
выводит все файлы и папки с указанием атрибутов
Для просмотра дополнительных команд windows наберите в командной строке help или смотрите руководство (его легко найти в интернете). Для линукса команд и их опций гораздо больше, а некоторые из них являются самостоятельными языками программирования, так что стоит выучить хотя бы минимальный набор и их опции.
Всё ещё не понятно? – пиши вопросы на ящик 
Динамическое выделение памяти
Параметры
- ”
заголовок
” - Указывает заголовок, выводимый в области заголовка окна.
- /d
путь - Указывает каталог запуска.
- /i
- Передает начальные установки среды интерпретатора Cmd.exe в новое окно командной строки.
- /min
- Запускает новое окно командной строки в свернутом виде.
- /max
- Запускает новое окно командной строки в развернутом виде.
- /
- Запускает 16-битные программы в отдельном пространстве памяти.
- /shared
- Запускает 16-битные программы в отдельном пространстве памяти.
- /low
- Запускает приложение с низким приоритетом.
- /normal
- Запускает приложение с нормальным приоритетом.
- /high
- Запускает приложение с высоким приоритетом.
- /realtime
- Запускает приложение с приоритетом реального времени.
- /abovenormal
- Запускает приложение с приоритетом выше среднего.
- /belownormal
- Запускает приложение с приоритетом ниже среднего.
- /wait
- Запускает приложение с ожиданием окончания его работы.
- /b
- Запускает приложение без открытия нового окна командной строки. Обработка комбинации клавиш
CTRL+C не производится, пока приложение не разрешит обработку CTRL+C. Для прерывания
приложения следует использовать CTRL+BREAK. - имя_файла
- Задает команду или программу для запуска.
- параметры
- Задает параметры, которые будут переданы вызываемой программе.
Востребованные сетевые команды командной строки
Из командной строки Windows можно взаимодействовать с сетевыми подключениями, изменять их настройки, просматривать различную информацию и многое другое. Рассмотрим наиболее востребованные сетевые команды.


“100% потерь” означает, что связь установить не удалось.



Если требуется определить только MAC-адрес сетевой карты, используем эту команду без всяких атрибутов:


