cmd

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

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

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

Создать новый пакетный файл можно в текстовом редакторе, например в «Блокноте». Главное сохранить его с расширением .bat или .cmd. Команды используются точно те же, что и в командной строке Windows. Каждая новая команда пишется с новой строки. Имеется возможность использовать переменные, условия и переходы к определенному месту в командном файле для создания сложных сценариев.

Например, следующий код создает новую папку с именем текущей даты на системном диске компьютера и экспортирует из реестра Windows куст HKEY_CURRENT_USER\Software в файл с именем backup.reg.

MD %SYSTEMDRIVE%\%date%
reg export "HKEY_CURRENT_USER\Software" "%SYSTEMDRIVE%\%date%\backup.reg" /y

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

Чтобы просмотреть содержимое или изменить командный файл необходимо щелкнуть по нему правой кнопкой мыши и выбрать пункт «Изменить». Он откроется в текстовом редакторе, где в него можно внести требуемые изменения.

Кириллица в BAT файле

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

Мы уже затрагивали кодировки, когда рассматривали единицы измерения объема информации. Суть проблемы заключается в том, что в командная строка использует кодировку DOS (codepage 866), а в самой операционной системе используется кодировка Windows (codepage 1251). Поэтому, когда вы запускаете такой батник, консоль не может правильно понять русские буквы и выдает ошибку. Это все равно, что если вы бы получили письмо на китайском языке. Это касается не только русского языка, но и любого другого, где используются не латинские символы.

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

chcp 1251

Она приказывает командному интерпретатору заменить кодовую страницу на стандартную для Windows. Теперь консоль нормально понимает русские буквы в именах папок и файлов, но при этом весь текст, выводимый в окне командной строки все равно отображается крякозябрами. При большом желании это можно обойти различными трюками, но все это «костыли». Есть другой простой способ обеспечить поддержку кириллицы в пакетном файле без танцев с бубнами.

Возможно вы уже догадались, что можно изначально создать батник в понятном для консоли виде, то есть сразу обращаться к ней на понятном для нее языке. Для этого нужно сохранить его в кодировке DOS. Вот только вопрос, как это сделать, может поставить неопытных пользователей компьютера в тупик. Ничего сложного в этом нет, единственная проблема, что стандартный Блокнот это делать не умеет. Придется воспользоваться какой-нибудь другой программой.

Вообще возможности Notepad.exe очень ограниченны и если вы собираетесь серьезно заняться программированием на любом языке или вам мало возможности просто набрать несколько строчек текста, то рекомендуем обратить внимание на альтернативные текстовые редакторы, например Notepad++ или AkelPad.

В качестве примера рассмотрим сохранение файла в кодировке DOS с помощью Notepad++. Переходите в меню программы по пути «Кодировки» ⇒ «Кодировки» ⇒ «Кириллица» ⇒ «OEM 866», как на изображении ниже.

Кодовые страницы в Notepad++

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

Что делать, если альтернативного редактора нет, и вы по каким-то причинам не хотите или не можете его установить. Можно вспомнить, что во всех Windows помимо стандартного Блокнота присутствует еще WordPad, который тоже может сохранять в кодировке DOS. Запустить его можно нажав комбинацию клавиш WIN+R и ввести «WordPad» и кнопку OK или «Пуск» ⇒ «Стандартные» ⇒ «WordPad». Просто набираете ваш код и нажимаете «Сохранить», в поле «Тип файла» выбрав «Текстовый документ MS-DOS». Затем меняете расширение получившего файла с .txt на .bat.

Выбор типа документа в WordPad

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

 

Комментарии  

#1 Любомир 26.01.2015 21:01
Спасибо :lol:
Цитировать
#2 Сергей Иванович 27.11.2016 13:30
Спасибо за "chcp 1251" !!!
Цитировать
#3 Nancee 09.02.2018 16:43
Hmm it seems like your site ate my first comment (it was extremely long) so I guess I'll just sum it up what I had written and say, I'm thoroughly enjoying
your blog. I too am an aspiring blog blogger but I'm
still new The Easiest Way to Write an Essay: http://assignmenthelp24.com/the-easiest-way-to-write-an-essay/ everything.
Do you have any tips for newbie blog writers? I'd definitely appreciate it.
Цитировать
#4 Lorna 08.03.2018 00:33
Oh my goodness! Amazing article dude! Thanks, However I am
going through difficulties with your RSS. I don't understand the reason why I can't subscribe to it.
Is there anyone else getting the same RSS issues? Anybody who knows the solution can you kindly respond?
Thanks!!

Have a look at my site; Assignment Help: http://assignmenthelp24.com
Цитировать
#5 Brittney 13.03.2018 07:46
Thank you for the auspicious writeup. It in fact was a amusement account it.
Look advanced to far added agreeable from you!

However, how can we communicate?

Also visit my web-site; vedi foto dieta prima e dopo: http://xatiyo.dieta-vita.com
Цитировать
#6 Leonard 25.03.2018 16:30
Thanks very nice blog!

Μy page mezo: http://mezocoupons.blogspot.com/
Цитировать
#7 Arron 26.03.2018 02:06
Hey I know this is off topic but I was wondering if you knew of any widgets
I could add to my blog that automatically tweet my newest twitter updates.

I've been looking for a plug-in like this for quite
some time and was hoping maybe you would have some experience
with something like this. Please let me know if you run into
anything. I truly enjoy reading your blog and I look forward to your new updates.


Also visit my web site ... Extended Definition Essay On Heroes: http://ukarab.2essaywriter.com/24-extended-definition-essay-on-heroes.html
Цитировать
#8 Ona 06.04.2018 05:44
Howdy! I could have sworn I've been to this website before but after
checking through some of the post I realized it's new
to me. Nonetheless, I'm definitely glad I found it and I'll be bookmarking and checking
back frequently!

Have a look at my web-site :: Abeer Mahmoud: https://venorex.wordpress.com/
Цитировать
#9 Gladys 11.04.2018 23:16
Ahaa, its pleasant conversation regarding this article here at this website, I have read
all that, so at this time me also commenting at this place.



Here is my blog - Sally Hussin: https://venorex.wordpress.com/
Цитировать
#10 Linnea 12.04.2018 10:56
Having read this I believed it was very enlightening.
I appreciate you finding the time and effort to put this content together.
I once again find myself spending way too much time both reading
and leaving comments. But so what, it was still worthwhile!


my blog post Amir Ali: https://venorex.wordpress.com/
Цитировать
#11 Soon 13.05.2018 21:54
Excellent article. Keep posting such kind of information on your blog.

Im really impressed by your site.
Hello there, You have done a fantastic job. I will definitely digg it and individually suggest to my friends.
I'm confident they will be benefited from this website.


Feel free to surf too my web site ... Eyelashes Growth: https://bit.ly/2Is2FRs
Цитировать
#12 Keenan 15.05.2018 18:30
We are a geoup oof volpunteers and starting a brand new schbeme in our community.
Your web site proivided us with helpful info to work on. You've performed an impressive task and our entire neighborhood will be thankful too you.


my web-site ... long eyelashes: https://bit.ly/2Is2FRs
Цитировать
#13 Roberto 17.05.2018 05:36
Very descriptive post, I liked that a lot. Will there be a part 2?


Here is my blog post - eyelashes ticker: https://bit.ly/2Is2FRs
Цитировать
#14 Elvira 18.05.2018 06:32
Everyone loves it whenever people come together and share opinions.

Great website, stikck with it!

My blog - Eyelashes Growth: https://bit.ly/2Is2FRs
Цитировать
#15 Blaine 19.05.2018 04:32
Fabulous, what a weblog it is! This webpage gives useful information to
us, keep it up.

Feel free tto visiot my page Long eyelashes: https://bit.ly/2Is2FRs
Цитировать
#16 Kassie 19.05.2018 13:21
Hey would you mind letting me know which web host you're using?
I've loaded your blog in 3 different browsers and I must say
this blog loads a lot quicker tthen most. Can you recommend a good internet hosting provider at a fair price?
Cheers, I appreciate it!

Feel free to surf to my homepage - Long
Eyelashes: https://bit.ly/2Is2FRs
Цитировать
#17 Shantell 20.05.2018 21:09
Its like you resad my mind! You appear to know a lot about this,
like you wrote the bopk in it or something.

I think that you can do with some pics tto drive the message home a bit, but
other than that, this iss fantastc blog. A great read.
I'll certainly bee back.

Look into my homepage - eyelashes: https://bit.ly/2Is2FRs
Цитировать
#18 Deangelo 21.05.2018 06:31
Very great post. I simply stumbled ulon your blog and wioshed to say that I've really enjoyed browsing your weblog posts.
In aany case I'll be subscribing for your
feed and I hooe you write obce more very soon!

Here is my site; Eye Lashes: https://bit.ly/2Is2FRs
Цитировать

Добавить комментарий


Защитный код
Обновить