Запуск bat-файла
Есть несколько способов запустить bat-файл:
Независимо от способа запуска bat-файла, команды в файле будут выполнены последовательно в командной строке, в том же окне или в новом, в зависимости от настроек и команд в самом файле.
Как создать bat-файл
Для создания bat-файла понадобится устройство с ОС Windows и любой текстовый редактор. Следуйте инструкции:
Запуск и использование командной строки
Командную строку в Windows можно запустить несколькими способами:

После открытия в окне командной строки будет показан текущий путь и приглашение для ввода команд.
Чтобы выполнить команду, нужно ввести её и нажать Enter. Например, для вывода списка файлов текущей папки используется команда dir.
Для перемещения по директориям используется команда cd. Например, чтобы зайти в папку Documents, вводим:
cd Documents
Также можно указать полный путь к папке.
Для запуска командной строки с правами администратора нужно открыть её контекстное меню и выбрать Запуск от имени администратора. Это потребуется для выполнения системных команд.
В командной строке есть множество дополнительных клавиатурных сочетаний для упрощения работы, например, стрелки вверх-вниз для пролистывания истории команд.
Настройка планировщика заданий (периодический запуск)
Чтобы настроить запуск bat-файла в заданное время используйте планировщик задач Windows:
(3).jpg)
Теперь ваш bat-файл будет запускаться автоматически в заданное время или по указанным условиям заданным в планировщике задач.
Работа с файлами и папками из командной строки
Бывают ситуации, когда невозможно запустить стандартный файловый менеджер Проводник Windows. Например, из-за действия вирусов-блокировщиков или при системных сбоях. В любом случае все, что можно сделать при помощи Проводника, можно сделать и при помощи командной строки. Начнем с самого простого — просмотра содержимого папок.

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

Команду dir можно применять вообще папкам, расположенным в вообще любом месте на жестком диске. Для этого после команды следует указать путь до каталога. К примеру, для просмотра содержимого папки Windows на диске C: следует ввести команду:
dir C:/Windows
Запомните одно простое правило. Если в именах папок/файлов присутствуют пробелы, их следует писать в двойных (имя папки или файла) кавычках.
Открытие файла из командной строки. Для открытия файла достаточно вписать его полное название вместе с расширением в командную строку. Что не вводить имя файла целиком, используйте клавишу Tab (с ее помощью можно поочередно перебирать имена всех объектов в текущей папке).
Переход в другую папку
Для перехода в папку используется команда cd, после которой следует прописать путь к открываемой папке либо просто ее имя (если она расположена в нашем текущем местоположении на жестком диске).
Пример:
cd Music
Перемещение на другой диск
Давайте перейдем в папку, расположенную на другом локальном диске. Это можно сделать несколькими способами, но воспользуемся самым легким для запоминания.
Пример:
D:
cd Music
Запуск/открытие программы/файлов в другой папке или на другом диске
Запустим программу, расположенную где-нибудь глубоко на диске. Для запуска файла или программы можно просто указать полный путь до него. Текущее местоположение в этом случае не имеет значения.
Пример:
C:\Program Files\Notepad++\notepad++.exe
Обратите внимание, что имя папки Program Files взято в кавычки, так как в нем присутствует пробел.
Создание, удаление и переименование файлов и папок
Из командной строки можно выполнить все эти операции над файлами и папками.
Примеры:
mkdir NewFolder
del FileToDelete.txt
ren OldFile.txt NewFile.txt
move FileToMove.txt DestinationFolder
Через командную строку можно выполнить и ряд других операций над файлами и папками, включая копирование, перемещение, применение/изменение атрибутов (скрытый, системный, только для чтения и т. д.), слияние и т. д.
Параметры команд и получение помощи
Прежде чем приступать к изучению команд, следует понимать два важных момента. Возьмем, к примеру, одну из наиболее востребованных команд ping. Впишите в консоль следующую строку:
ping /?
Подобным способом можно получить справку по большинству команд (в основном по тем, у которых имеются атрибуты).
Открыть доступ
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях.
Переменные
При написании bat-файла также применяют переменные, которые используются для хранения и управления значениями данных. Они позволяют создавать гибкие скрипты, облегчают автоматизацию повторяющихся задач и упрощают изменение значений в различных частях скрипта.
Использование переменных в bat-файлах
Чтобы использовать переменные в bat-файлах, следует сначала задать ее с помощью команды set. Значение переменной указывается с помощью символа %.
В bat-файлах можно использовать несколько типов переменных:
set /a NUMBER=5
Запуск системных компонентов и программ из командной строки
Здесь стоит отметить, что запускать системные компоненты и программы все же проще не напрямую из командной строки, а из ранее упомянутого приложения Выполнить. Но разницы в синтаксисе (написании) самих команд никакой нет. В обоих случаях после ввода команды достаточно нажать Enter.
Список наиболее востребованных команд для запуска системных приложений и компонентов:
command1command2command3command4
| Приложение | Команда для запуска |
|---|---|
| App1 | command1 |
| App2 | command2 |
| App3 | command3 |
Список команд для запуска предустановленных в Windows программ:
program1program2program3program4
| Программа | Команда запуска |
|---|---|
| Program1 | program1 |
| Program2 | program2 |
| Program3 | program3 |
И это далеко не полный список команд запуска системных приложений и компонентов, а лишь самые востребованные у нас — обычных пользователей.
Примеры bat-файлов
set /p name=Введите ваше имя:
set /a num1=5
set /a num2=2
set /a sum=%num1% + %num2%
set /a product=%num1% * %num2%
Синтаксис написания bat-файла
При написании bat-файла необходимо учитывать следующие правила:
- Понимать как работают команды в командной строке.
- Использовать удобную структуру папок и файлов.
Редко используемые, но очень полезные команды
При помощи командной строки можно выполнять различные интересные функции (большинство приведенных ниже команд работает только с правами администратора):
Превращаем ноутбук в Wi-Fi-роутер
Для реализации этой затеи нужно поочередно выполнить три несложные команды:
command1command2command3
Удаление службы Windows (или любую другую) через командную строку
Если после выполнения каждой команды вы видите сообщения, аналогичные тем, что приведены на изображении выше, значит, все прошло успешно. Теперь к ноутбуку можно подключиться, например, с телефона так же, как и к обычному Wi-Fi-роутеру.
Если попробовать удалить службу через штатное приложение Службы, то ничего не получится (в нем попросту не предусмотрено такой функции). Однако это бывает необходимым, особенно после установки различных программ, которые устанавливают службы, но забывают их удалять при деинсталляции. Это легко реализуется через командную строку. Однако для начала необходимо узнать имя службы, и это можно сделать через стандартное Windows-приложение:
sc delete имя_службы
Включение/перезагрузка/отправка в сон/гибернацию компьютера с задержкой
Если необходимо выключить, перезагрузить или отправить в сон компьютер с задержкой по времени, не обязательно использовать какие-либо сторонние программы — все можно сделать при помощи командной строки. Для этого достаточно использовать команду:
shutdown /s /t 60 /f
В данном случае компьютер будет выключен (параметр /s) через 60 секунд (параметр /t 60) с принудительным завершением работы всех приложений без предупреждения пользователя (параметр /f — обязательный при использовании таймера /t).
Для перезагрузки или отправки в сон компьютера использовать:
shutdown /r /t 60 /f
shutdown /h /t 60
Для выключения компьютера, например, через 2 часа следует указывать в параметре /t число 7200 (1 час равен 3600 секундам).
Просмотр списка запущенных процессов и завершение работы любого из них
Если по каким-то причинам не удается запустить Диспетчер задач, но имеется доступ к командной строке, запущенный процесс может быть снят при помощи специальных команд:
tasklist
taskkill /IM имя_процесса /F
Восстановление интернет-подключения через командную строку
Разнообразные неполадки с сетевыми подключениями можно устранить одним махом через командную строку путем сброса настроек TCP/IP. Для выполнения этой задачи нужно поочередно ввести две команды:
netsh int ip reset
netsh winsock reset
Эти команды помогут сбросить настройки TCP/IP и Winsock, что может исправить проблемы с сетевым подключением.

Перезагружаем компьютер для применения изменений.
Команды Виндовс, темная материя операционной системы
Кон В. Г. 13-08-2023 http://kohnvict.narod.ru
Такой вариант намного удобнее, потому, что файл с расширением bat можно предварительно отредактировать в любом текстовом редакторе, и файл сохраняется на винчестере, его можно копировать и многократно исполнять. В системе Юникс (Линукс) любой файл можно объявить как командный, а в системе Виндовс такое объявление происходит путем записи расширения bat. В этом смысле слова bat-файл и командный файл синонимы. Как я уже сказал, командный язык был разработан еще в ДОС, и он почти без изменений используется во всех ОСВ, хотя от системы к системе могут появляться новые команды. Однако старые продолжают работать.
В этой статье я постепенно рассказываю про некоторые команды ОСВ. За каждой такой командой стоит специальная программа, которая выполняет ту или иную работу. Но есть и внутренние команды языка, которые указывают интерпретатору, то есть программе cmd.exe, как ей надо понимать и как выполнять команды. Такие команды разумно выучить даже раньше названий самих программ, чтобы лучше понимать написанный код. Вот с них и начнем. Работать можно где угодно, в любой папке компьютера или на рабочем столе, который тоже является специальной папкой.
help cmd pause
Команда (pause) очень полезная, потому что выполнение команд производится автоматически. Когда все команды кончились, то консольное окно автоматически закрывается, и прочитать информацию, которую печатали команды, невозможно. Иногда это полезно, но не в нашем случае. Итак, теперь достаточно дважды кликнуть на иконке bat-файла, и откроется консольное окно, в котором будет показано описание команды "cmd". Так же точно можно получить описание любой другой команды.
То есть, фактически, осталось только узнать имена всех команд и указанным способом можно получить инструкцию как ими пользоваться. Я укажу еще одну команду (exit), которая в ДОС закрывала консольное окно, потому что иначе оно не закрывалось. Команда осталась, но ее выполнять уже не обязательно, так как окно и так закрывается, а, кроме того, его можно закрыть как любое окно ОСВ, кликая крестик в правом верхнем углу.
В старых ОСВ была проблема с русским текстом в консольном окне. Он не читался. Чтобы он читался, систему приходилось настраивать. В Виндовс-10 я не помню, чтобы я это делал. Если ноутбук куплен в России с предустановленной системой, то обычно все работает сразу правильно. Если нет, то как быть можно узнать в интернете. Здесь я об этом писать не стану, так как многим это не понадобиться.
Многие команды ОС Виндовс запускают программы, которые не только получают входные параметры из командной строки, но и просят ввести какие-то значения с клавиатуры как ответ на вопрос программы, а результаты печатают в консольное окно строку за строкой. Если данных для ввода мало, а результат записывается коротко, то и достаточно. А если нет? Тогда получается очень неудобно. Возникает проблема, которую надо решать.
И снова дважды кликните на иконке файла.
На этот раз в консольном окне ничего не появится, зато на вашем рабочем столе появится иконка нового файла с именем "out.txt". Этот файл создала программа help, запущенная из командного файла "run.bat". Можно посмотреть его содержание в любом текстовом редакторе, например, в Notepad. И тут в старых версиях ОСВ вас может тоже ждать сюрприз. Русские буквы текста нечитабельны. В чем дело? А дело в том, что в старых версиях ОСВ программа help продолжает показывать русские буквы в старой, то есть в дос-кодировке, а редактор уже давно показывает русские буквы в так называемой виндовс-кодировке. Чтобы прочитать такой файл вам необходимо воспользоваться редактором, который умеет показывать текст во всех пяти кодировках русских символов, которые сейчас существуют.
Теперь самое интересное. На командной строке, то есть в строке bat-файла можно указывать не только команды ОСВ, то есть имена файлов с расширением exe и с именем как имя команды, но и любые файлы с расширением exe. Все такие файлы являются программами для ОСВ и она их запускает как программы. Но если свои команды ОСВ знает где искать, то чужие — в общем случае не знает. Поэтому она всегда начинает искать файл в той же папке, в которой записан bat-файл. Если он записан на рабочем столе, то и программа должна быть на рабочем столе.
Это не всегда удобно. Удобно делать наоборот, то есть записывать bat-файл в ту же папку, где находится программа. В этом случае никаких проблем не будет. Но можно указывать не только файлы с расширением exe, а и файлы с другим расширением, например, txt, что еще более удобно. Что происходит в этом случае? А вот что. ОСВ помнит таблицу, в которой написано какую программу надо запускать с каким расширением файла. И она просто выполнит эту программу, хотя сама программа явно в команде не указана.
Это очень удобно. Например, можно указать на файл с расширением pdf и запустится Акробат-ридер, который покажет файл. Если указано запускать браузер, то откроется окно в браузере. И так далее. Таким образом можно смотреть файлы очень многих типов. Есть и программы, которые имеют другое расширение, не exe. Легко сообразить, что все программы, которые запускаются по расширению файлов, при их запуске с командной строки имеют имена этих файлов как параметры. Поэтому можно использовать и другой способ — запускать такие программы в явном виде указывая в качестве параметра имя файла, который вы хотите посмотреть. Но в этом случае можно указывать полный адрес такой программы. Например, у меня выполняется такая команда
C:"Program Files"Adobe"Acrobat DC"AcrobatAcrobat.exe 009.pdf pause
Но для ее успешного выполнения необходимо, чтобы на ноутбуке была указанная по адресу программа, а также указанный как аргумент pdf-файл. Иногда ОСВ требует разрешения, но его можно дать один раз на всю работу и дальше все будет автоматически. В моем случае перед открытием файла программа два раза указала на ошибку в поиске файла, но все же показала его.
Что здесь важно? Сам bat-файл и pdf-файл находятся в одной папке, то есть на рабочем столе, а вот для программы указан ее полный адрес, то есть путь к файлу. Возможно ошибки были связаны с тем, что сама программа не знает про наши команды и для файла тоже надо было указать полный адрес. Но нет, это не помогает. Есть очень много способов узнать полный адрес программы. Он, обычно, даже запрашивается при установке программы, или сообщается в ее свойствах. Важно, что таким способом можно уже запускать любой файл с любой программой, конечно при условии, что программа способна работать с файлом, то есть его формат записи правильный для этой программы.
Еще одна особенность. Так как пробел является разделителем между командой и ее аргументами, то все имена внутри команды, содержащие пробелы, надо помещать в кавычки. Раньше, то есть в ДОС, имена с пробелами писать было нельзя. По этой причине я и сейчас не советую называть папки русскими буквами и писать в них пробелы. Это ограничивает применимость командного управления работой компьютера. И вообще это дурной тон.
Адоб ридер — не единственная программа, которую можно запускать таким способом. Другими важными программами являются текстовые редакторы, браузеры, видео-проигрыватели и многие другие программы. Важно, что многие программы, которые впервые появились в системе Юникс, очень удобно запускаются именно таким способом. Часто они вообще не имеют графической среды общения с пользователем.
Итак, я показал как можно запускать любые программы с именем файла в виде параметра на командной строке. Это все же был частный случай, когда bat-файл и обрабатываемый файл находятся в одной папке, а сама программа задается полным именем, то есть начиная от буквы диска. И при этом программа сама не читает и не записывает никаких дополнительных файлов. Однако это бывает не всегда так. Бывают довольно сложные программы, которые записывают и читают дополнительные файлы.
Одной из таких программ является бесплатная программа МикТех, которая компилирует файл источника с расширением tex в pdf файл документа. Этой программой часто пользуются научные работники, потому что она позволяет очень легко и просто кодировать научные формулы. Но ее можно использовать для создания pdf документа любого типа. Кроме того, у нее фактически нет графической оболочки, то есть ее запускают только с помощью командной строки. Чтобы понять как это делается, надо познакомиться с принципами работы ОСВ более глубоко. Итак, вы указали системе имя файла с помощью команды и система должна найти этот файл.
Прежде всего она ищет его в той же папке, где находится командный bat файл. Но что делать, если его там нет? Искать его перебором во всех папках винчестера очень долго, особенно на современных терабайтных винчестерах. ОСВ поступает иначе. У нее есть список папок, в которых надо искать файл, причем этот список она проходит от начала до конца. То есть сначала ищет в первой папке списка, потом во второй и так далее. Для записи этого списка ОСВ использует системную строку с названием PATH. Команды пишутся маленькими буквами, а вот системные строки — большими. Как правило, большие программы при установке сразу записывают в эту строку адрес папки, где они установлены. Поэтому эти программы можно указывать только по имени, система все равно их найдет, потому что будет искать в папке, которая записана в PATH.
При установке JRE она прописывает путь к своей папке в строке PATH. И упакованные программы в виде jar файлов, а также программа java.exe запускаются автоматически. Но иногда возникает нобходимость использовать более старую версию JRE, которая записана в другой папке. И тогда для ее запуска надо указать путь к файлу, то есть имя папки, где она записана. Для стандартной установки делается это следующим образом:
set path=C:"Program Files"Javajre1.8.0_341in;%path% java -jar vkACL.jar pause
Как только мы это сделали, мы можем смело писать программу по имени, в какой бы папке мы не находились. ОСВ все равно очень быстро найдет эту программу, а также она найдет и все другие файлы в папке программы, которые ей могут понадобиться для работы. Более того, если программа установлена, то ее папку можно скопировать хоть на флэшку и она все равно будет работать. Говоря компьютерным языком, это портабл (переносимая) программа. То есть ее можно копировать куда угодно и она все равно будет работать. Но только при правильном указании ее папки в переменной PATH.
Это значит, что опытный пользователь может запустить Java программу даже на таком компьютере, где виртуальная машина не установлена. Ее можно иметь на флэшке. И при этом использовать более старую версию виртуальной машины. Хотя производители все время навязывают использование только самых новых версий JRE, иногда бывает удобно использовать старые версии. Они могут иметь меньший размер или такую функциональность, которая пропала в новых версиях. Такое тоже бывает. Для этого просто надо прописать в команде "set path" адрес папки со старой версией JRE. Используя bat-файл, вы ничем не рискуете, так как команда выполнится только на один сеанс работы bat-файла.
Снова отмечу, что если файл "vkACL.jar" записан без указания папки, то bat-файл должен находиться в этой же папке. Еще один момент. Файл с расширением jar можно запускать простым кликом на его иконке. Это сработает. Но виртуальная машина иногда дает сбои и не может выполнить кое-какие действия. При этом она сообщает о своих проблемах печатью в консольное окно. Но при запуске простым кликом консольное окно не открывается и таких записей не видно. Чтобы их увидеть, надо запускать программу именно через указанный выше bat-файл. Только в этом случае откроется консольное окно (Терминал в терминах системы Юникс) и можно будет увидеть записи, которые делает JRE, а более конкретно — программа java.exe.
Есть и другие применения bat-файла. Дело в том, что программа java.exe имеет очень много дополнительных параметров, не только имя файла, и все они указываются на командной строке. Очень важным параметром является размер выделяемой под программу оперативной памяти. ОСВ не может выделить программе всю оперативную память, ведь эта система многооконная, а значит многозадачная. Оперативная память распределяется между программами и сама ОСВ это делает исходя из своих предпочтений. А если вам надо выделить под вашу программу больше оперативной памяти, чем ей выделает ОСВ, то это надо специально указать дополнительным аргументом на командной строке. И ОСВ будет пытаться это сделать. Если вы закроете все лишние окна, то вероятность успеха увеличится.
Есть еще одна очень простая команда, которая может пригодиться. Предположим, что у вас есть программа, которая работает в какой-то папке, и все файлы она читает и записывает в этой папке. А вот bat-файл вы хотите записать в другую папку. Казалось бы можно поступить как выше. Можно, но есть другое решение, более эффективное и простое. Вы можете запустить bat файл только из папки, которая является активной в данный момент. Но есть команда, которая способна изменить это, и сделать активной другую папку. Она называется "cd". У нее есть и другие названия, но этого достаточно. Это первые буквы слов "change directory". Дело в том, что слово "папка" появилось только в ОСВ. В ДОС вместо слова "папка" использовали другое слово — "директория". По русски это означает поменять папку.
Новое имя папки является аргументом данной команды. Адрес папки можно указать точно, вместе с буквой диска, хотя эта команда не умеет менять диск непосредственно. Например,
Наверно можно писать русские буквы и пробелы (в кавычках), но я редко использую русские буквы в именах папок и пробелы не пишу, лучше писать символ черточки. Так что экспериментируйте самостоятельно. В данной записи буква диска нужна только для того, чтобы указать, что отсчет идет с самого начала, что это абсолютный путь. Если же все же надо и диск поменять, то надо использовать ключ "/D", тогда будет так
cd /D D:Fileslettersmy-last-letter
В этом случае буква диска не пишется. При переходе на другой диск раньше просто писали букву диска и двоеточие без всякой команды. Как теперь — не знаю, не проверял. Это уже не актуально, так как у меня на компьютере только один диск. Есть конечно флэшки и внешний винчестер, но операция перемены диска встречается крайне редко. Просто пишите bat-файлы на том диске, на котором работаете, и не будет никаких проблем.
Итак, мы научились запускать самые разные программы с учетом их конкретного размещения на винчестере. Уже это позволяет очень упростить работу на компьютере. Достаточно сделать bat-файлы на запуск наиболее важных программ и файлов и уже не понадобятся ни рабочий стол, ни иконки. Но на самом деле команды системы способны выполнять любую работу, которую способна делать ОСВ. Так важными операциями являются копирование файлов, перемещение файлов, уничтожение файлов, переименование файлов. ОСВ предоставляет меню по правой кнопке мыши для этих операций и все удобно. Но только если это надо сделать один раз. А если много?
А если много, то вы в этой работе получаете вместо мерседеса самокат, и надо все время толкать ногой, иначе никуда не поедете. С помощью командных файлов можно автоматически выполнять очень много команд сразу. Ведь в bat-файл можно записать много строк и все команды будут выполнены автоматически. Команды на указанные операции имеют имена "copy" (копирование файла), "move" (перемещение файла), "del" (уничтожение файла), "ren" (переименование файла). Я не стану их подробно описывать, все уже давно написано. В частности, можно сделать такой bat-файл и все посмотреть средствами самой системы
help copy pause help move pause help del pause help ren pause
Наверняка и в интернете есть много информации об этих командах, нужно только правильно сделать запрос. Есть также и встроенное описание операционной системы. Но если эти команды использовать в их простой модификации, то все интуитивно просто. Отмечу только, что команда "ren" не может перемещать файл, она только меняет имя файла, оставляя его в той же папке. Ее удобно использовать для изменения расширения файла. Вот пример. Любая Java программа в формате jar — это запакованный zip архив. Но чтобы легко открыть этот архив, используя ОСВ нужно переименовать файл с имени "name.jar" на имя "name.zip". После этого такой файл можно открыть как папку, посмотреть что там есть, кое-что исправить, и потом снова переименовать обратно. И мы снова получаем программу, но уже в измененном виде.
Используя bat-файлы можно очень легко работать с Java программами. Это и не удивительно. Ведь Java программы — продукт, первоначально созданный для системы Юникс. А в ней командные файлы очень популярны до сих пор. Я укажу на еще одну очень полезную команду, а именно
Эта команда с указанными ключами запишет в файл "dir.txt" все имена файлов в текущей папке и всех ее внутренних папках. Этот файл можно переписать на флэшку и вы всегда будете знать какие файлы записаны у вас в данной папке на вашем домашнем компьютере, а какие на рабочем. Если указать имя папки в качестве аргумента, то можно составить каталоги многих папок за один прием. В частном случае эта команда позволяет просто сосчитать сколько файлов в папке по числу строк в файле "dir.txt".
Я еще раз хочу сказать, что в старые времена все команды набирались вручную в терминальном (консольном) окне и это как раз совсем неудобно, современная ОСВ все это делает намного нагляднее и удобнее. Но при использовании bat-файлов ситуация меняется. Эти файлы можно заготовить заранее в любой комбинации и потом остается только кликнуть на иконке файла. В таком режиме у ручной ОСB нет преимуществ. Я уже не говорю о том, что программисты могут записывать и запускать bat-файлы из собственных программ. На самом деле ОСВ сама запускает команды, точнее не столько команды, сколько те программы, которые за ними стоят. Ведь красивые иконки и картинки сами по себе ничего не делают.
Если честно, то я описал все команды ОСВ, которые сам часто использую в своей работе. Но это просто от лени. Кроме того, я программист, и многие операции могу делать по собственным программам. Однако в ОСВ есть очень много других команд, которые могут пригодиться. Некоторые из них я попробую описать ниже. Но здесь хочу сказать, что не все команды так уж интересны. Ведь команды создавались давно, во времена ДОС, и некоторые из них нужны на случай провала системы Виндовс. А реально в ОСВ эта работа делается лучше. Например есть команда
Эта команда показывает в консольном окне содержимое файла с именем "filename" в текущей папке, или по полному имени, если указан полный адрес. При этом русские буквы она раньше показывала в ДОС кодировке и их невозможно было прочесть в ОСВ без дополнительной настройки. Но это совсем не удобно. Для такой работы есть программа "Universal Viewer", которая показывает содержание файлов любой природы в очень удобном виде. Да и сама ОСВ тоже все покажет как надо. И перенаправлять выдачу в файл тоже нет смысла, мы просто получим копию файла. Такие команды вряд ли разумно использовать сегодня. Тем не менее, есть другие, не такие простые, но все же полезные.
Этого часто хватает, и все же не стоит забывать про наличие таких команд, как "copy" (копировать несколько файлов в один), "move" (перемещение файла из папки в папку), "del" (уничтожение файла), "ren" (только переименование в той же папке). К ним можно добавить также команду "md" (make directory), которая создает новую папку внутри текущей папки, и имеет аргументом имя папки. У нее есть еще более старое название "mkdir". Команда "rd" или "rmdir" является обратной к предыдущей, она уничтожает папку внутри текущей папки. Эти команды уже можно считать устаревшими, так как их более удобно использовать в любом файловом менеджере типа (Q-Dir).
Такой же устаревшей командой можно считать "date", которая показывает текущую дату и позволяет установить новую. Впрочем иногда ее можно использовать в пакетном режиме для каких-то целей, например вывода даты в каталог файлов. Я замечу, что иногда полезно использовать регулярные (специальные) выражения в командах. Так, например, команда (del *.obj) уничтожит все файлы с расширением obj в текущей папке, то есть символ * означает любое имя файла. Есть и другие возможности.
Более полезной файловой командой являются команда (find), которая позволяет выполнить поиск произвольного набора символов, включая служебные символы типа конца строки в системе файлов. Команда (findstr) выполняет поиск одной или более текстовых строк и регулярных выражений в системе файлов. Для этих команд нет специальных программ, хотя их несложно сделать. Но иногда использование bat-файлов может привести к эффективному решению задачи, и даже не нужно искать специальные программы. Я не стану подробно описывать эти команды, кто захочет сам сможет найти описание по указанной ранее схеме. Отмечу только, что вместо команды (help) с именем команды можно просто набрать имя команды с ключом /? . Результат будет одинаковый, но для некоторых команд (help) не дает ответ и предлагает использовать второй способ вызова описания.
Команды поиска слов в файлах могут понадобиться, если необходимо найти нужную информацию среди большого числа писем, написанных и размещенных в какой-либо папке. Любой текстовый редактор выполняет поиск только внутри текста, загруженного из одного файла, а проверять все файлы вручную — довольно утомительное дело. Я сам для себя написал такую программу на собственном языке программирования ACL. Наверняка есть и другие программы. Но их надо искать, а программы системы Виндовс всегда рядом, остается только научиться их эффективно использовать.
К относительно полезным командам следует отнести команды анализа контента (содержания). Так иногда может пригодиться команда (sort), позволяющая упорядочивать содержимое заданного файла определенным образом и записывать результат работы в другой файл. Другая полезная команда "comp" (compare) позволяет сравнить два файла или две системы файлов на идентичность содержания. Если указаны системы файлов, то сравниваются только файлы с одинаковыми именами. Различия сообщаются только для файлов одинакового размера. Более мощной командой такого типа является "fc" (file compare). Надо сказать, что в программе Тотал коммандер есть визуальная программа для сравнения файлов. Но и про данную команду тоже знать не помешает.
Для работы в интернете с самого начала развития системы Юникс появились команды (telnet) и (ftp) для работы на чужом компьютере через интернет и для обмена файлами через интернет. Обе эти операции до сих пор актуальны и командами можно пользоваться. Но сейчас можно сделать по другому. Дело в том, что сейчас появились мощные браузеры, которые в графической оболочке позволяют скачивать файлы с серверов, а практика использования персонального аккаунта в локальной сети с выходом в интернет уже практически потеряла актуальность, особенно в системе Виндовс. Как правило, для выхода в интернет используется провайдер, обеспечивающий ограниченные функции работы в интернете, а связь между компьютерами тоже выполняется через провайдеров.
Правда программы обмена файлами через ftp даже при взаимодействии с провайдерами существуют. Но и такая практика все больше заменяется на онлайн загрузку без использования ftp протокола. А практика работы на чужом компьютере через интернет осталась только у высоких профессионалов. Простым пользователям это не надо. Зато набирает обороты практика работы на программах, работающих прямо на сервере и с файлами тоже размещенными на сервере, то есть, так называемые, облачные технологии. В этом случае компьютер используется только как пишущая машинка и экран. Среди интернет программ относительную популярность получила программа "ping", которая проверяет выход компьютера на сервер или в роутер. Вот как выглядят команды проверки обмена данными для роутера и сайта
ping 192.168.1.1 ping kohnvict.ya.ru pause
При выполнении этой команды заодно можно узнать интернет адрес сервера, на котором расположен сайт, в численном формате. Ну и также узнать скорость обмена пакетами, то есть скорость интернета.
Командные файлы могут содержать очень много команд, более того, команды могут взаимодействовать. Так, например, выходные данные одной программы можно сделать входными данными другой программы. Для этого используется символ вертикальной черты, вот пример
Эта команда сначала запустит программу "dir" с двумя ключами, которая запишет каталог файлов внутри данной папки, включая все ее внутренние папки, но свой результат она передаст программе "sort", которая отсортирует строки по алфавиту и уже в таком виде запишет в файл. Удобство такой операции в том, что в упорядоченном каталоге намного проще искать заданный файл, особенно если каталог очень большой. Кроме того, каталоги удобно сравнивать по содержанию. Еще раз отмечу, что русские буквы в старых ОСВ будут показаны в ДОС кодировке, соответственно надо использовать фонт "Terminal" в Блокноте (Notepad).
Интересно, что команды в bat-файле можно организовать таким образом, что они будут выполняться в зависимости от результатов их работы. Я попробую объяснить как это делается. Прежде всего, между командами можно расставить метки. Метка должна находиться в отдельной строке и начинаться со знака двоеточия. Метка не является командой, но она выполняет разметку. И есть команда "goto", которая не запускает никакую программу, но служит указателем интерпретатору перейти на метку, которая является ее аргументом. Вот пример
goto m1 ping 192.168.1.1 ping kohnvict.ya.ru help shutdown :m1 help goto pause
Такие меры есть. Есть команды, которые выполняются по условию. Это позволяет реализовать автоматическую работу программы в зависимости от протекания процесса. Вот пример. Вы заказали сначала запуск программы A, а затем запуск программы B. Но запуск программы B имеет смысл только тогда, когда программа A сработала правильно. А что будет, если это не так. Тогда программа B будет просто напрасно работать. Для этой цели есть такие конструкции
if errorlevel n command if not errorlevel n command
Здесь первая команда выполнится только при условии, что переменная ОСВ "errorlevel" будет больше или равна n, где n — число. А вторая — наоборот. Переменная "errorlevel" генерируется любой программой при ее завершении. Более того, можно так написать программу, чтобы эта переменная имела заранее заданное значение при выходе из программы. Обычно, если программа выполнилась благополучно, то значение "errorlevel" равно 0, а если была ошибка, то 1. Но могут быть и другие значения в зависимости от характера ошибки. Любая программа сама генерирует это значение в момент завершения. Просто надо знать заранее как работает программа и тогда можно использовать это знание для более адекватной организации процесса. Другой вариант такой
if exist file command if not exist file command
Здесь первая команда выполнится, если указанный файл существует, а вторая — наоборот. Снова есть взаимодействие. Например, первая программа при своем удачном завершении должна записать файл. Если файл записан, имеет смысл запускать вторую программу, а если нет, то нет. Или наоборот, если возникла ошибка, то программа записывает файл с указанием ошибки. А нет, так нет. Есть и другие варианты
if defined variable command if not defined variable command
Здесь первая команда выполнится, если переменная "variable" определена, а вторая наоборот. Есть еще условная команда по сравнению текстовых строк, но она статическая. Я ее запишу так
Есть еще команды, реализующие циклы, но это уже редко используется. Более того, циклы легко реализовать используя комбинацию команд "goto" и "if", и я даже не хочу про них рассказывать. Кому надо — делайте запрос в Яндексе и все найдете. Вот интересно, что есть команда "shutdown", которая позволяет выключить компьютер и есть команды, которые позволяют указать время паузы для выполнения других команд. Но это все достаточно опасные и специфические операции, и я не советую их использовать. Хотя при определенном искусстве написания bat-файлов можно организовать работу компьютера на часы, допустим ночью, и потом его выключить. Это разумно.
В заключение скажу, что в bat-файлах можно запускать не только программы, но и другие bat-файлы. Для этого используется команда (call). И, наконец, последнее. Даже сами bat-файлы можно записывать с аргументами, например, в той же команде "call". При этом аргументы в теле bat-файла заменяются на выражения типа %1 для первого аргумента, %2 для второго и так далее. Это удобно и при непосредственном использовании, если под рукой есть командная строка, как в программе (Тотал коммандер). Но редактирование файла тоже можно сделать достаточно эффективно.
Интересной командой ОСВ является (explorer). Это название программы, которая открывает окно менеджера файлов. Как известно браузер в ОСВ называется (Windows explorer), и он же используется для навигации по файловой структуре. Например, для ручного перемещения файлов из папки в папку нужно открыть два окна с двумя папками и потом можно перетаскивать иконки файлов из одной папки в другую. И вот открыть два окна с нужными папками как раз позволяет эта программа, а адрес папок должен быть аргументом команды. Открыть два окна и установить в них нужные папки вручную все же довольно долго и утомительно. А приготовить bat-файлы для любой комбинации папок намного проще.
Ссылки
1. Сайт для запуска старых систем Виндовс 2. Советы тем, кто работает в системе Виндовс. 3. Описание правил работы с моим редактором. 4. Команды ОС Виндовс на сайте lumpics 5. Команды ОС Виндовс на сайте lifewire 6. Команды ОС Виндовс на сайте windd
Как открыть командную строку Windows?
Некоторые из консольных команд можно выполнить лишь из учетной записи администратора. Потому лучше сразу запомнить, как запускать интерпретатор с максимальным количеством прав доступа к системе. В ОС Windows 7/8/10 делается это просто:

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








