Для смены языка используйте bat файлы в корне коллекции
Cкрипт позволяет изменять язык интерфейса системы в версиях,которые не поддерживают официально данную возможность. Для Windows 7 это все редакции младше Ultimate, а начиная с Windows 8 и выше - это редакции Single Language. В остальных редакциях изменить язык системы можно стандартным способом. Однако если вы захотите, то также можете это сделать с помощью данного скрипта, так как он является универсальным и может работать со всеми редакциями.
С помощью этого скрипта вы можете:
- Извлечь cab файл из exe файла языкового пакета.(Extract.cmd)
- Установить языковой пакет для системы.(Install.cmd)
- Посмотреть список языков доступных в системе.(List.cmd)
- Сохранить список названий языковых пакетов в файл.(Save.cmd)
- Поменять язык пользовательского интерфейса.(xx-XX.cmd)
- Удалить ненужный языковой пакет из системы.(Delete-xx-XX.cmd)
Выбор действия, которое необходимо произвести, определяется именем самого скрипта. Изначально скрипт имеет нейтральное название - xx-XX.cmd. Таким образом, для выполнения того или иного действия, вы должны соответствующим образом его переименовать. Для удобства вы можете сделать несколько копий этого файла.
Первая программа и основные команды
test.bat
Нажимаем на него ПРАВОЙ кнопкой мыши. Должно появиться диалоговое окно. Нажмем "Открыть". Должен открыться блокнот, пишем:
В 1-ой сроке ("@echo off") префикс '@ ' означает, что команда не будет выведена на экран(попробуйте его убрать :-) ), сама же команда (echo) выводит текст следующий за ней(см. строку 2), НО, если подать строку "off", все последующие команды будут действовать так, как будто перед ними стоит префикс '@', "echo on", соответственно, выключает этот режим. Чтобы вывести символ "%", его нужно дублировать, потом поймете почему :-), для вывода пустой строки поставьте "." после "echo"
В 3-ей строке команда выводит строку "press any key to continue . . ." (если у вас русский язык - "Для продолжения нажмите любую клавишу . . .") и останавливает программу до нажатия любой клавиши.
Список культурных кодов для языков
"ar-SA" Arabic - Saudi Arabia
"bg-BG" Bulgarian - Bulgaria
"cs-CZ" Czech - Czech Republic
"da-DK" Danish - Denmark
"de-DE" German - Germany
"el-GR" Greek - Greece
"en-GB" English - United Kingdom
"en-US" English - United States
"es-ES" Spanish - Spain
"es-MX" Spanish - Mexico
"et-EE" Estonian - Estonia
"fi-FI" Finnish - Finland
"fr-CA" French - Canada
"fr-FR" French - France
"he-IL" Hebrew - Israel
"hr-HR" Croatian - Croatia
"hu-HU" Hungarian - Hungary
"it-IT" Italian - Italy
"ja-JP" Japanese - Japan
"ko-KR" Korean - Korea
"lt-LT" Lithuanian - Lithuania
"lv-LV" Latvian - Latvia
"nb-NO" Norwegian - Norway
"nl-NL" Dutch - Netherlands
"pl-PL" Polish - Poland
"pt-BR" Portuguese - Brazil
"pt-PT" Portuguese - Portugal
"ro-RO" Romanian - Romania
"ru-RU" Russian - Russia
"sk-SK" Slovak - Slovakia
"sl-SI" Slovenian - Slovenia
"sr-Latn-CS" Serbian - Serbia (Latin) Old
"sr-Latn-RS" Serbian - Serbia (Latin) New
"sv-SE" Swedish - Sweden
"th-TH" Thai - Thailand
"tr-TR" Turkish - Turkey
"uk-UA" Ukrainian - Ukraine
"zh-CN" Chinese(Simplified) - China
"zh-HK" Chinese(Traditional) - Hong Kong SAR
"zh-TW" Chinese - Taiwan
Я тут решил заняться программированием в командной строке, и, как водится, понимаю не все. В связи с этим есть три вопроса (пока только три, потом, наверное, появятся еще). Если тут есть люди, в этом понимающие, помогите плз!
1) Как открыть на экране командной строки данный txt?
2) Как взять значение (все данные в нем) bat-а, который я запустил, и скопировать его в определенный txt-файл?
3) Как задавать переменные с клавиатуры? Нужно что-то типа SET [переменная]=[запрос].
2) Если тебе просто нужно скопировать содержимое bat в txt то можно использовать copy file.bat file.txt или type file.bat>file.txt Если тебе нужно передать результат выполнения команды в файл, то используй перенапраление - ">"
3) set /p переменная=запрос
Спасибо всем! Теперь еще вопросы.
4) Можно ли в операторе set использовать одновременно /p и /a, чтобы значение введенное с клавиатуры можно было обрабатывать как число? Если вводить
set /p /a переменная=запрос
, то не принимается переменная (на echo %переменная% выдает пустое значение), если пробовать в другом порядке - пишет "Отсутствующий оператор".
5) Как взять какую-то часть строки? Всмысле, с n-ного по m-ный символы. И как взять определенную СТРОЧКУ из текстового файла?
4) А как ты во время ввода собрался обрабатывать переменную то? Насколько я понимаю данные обрабатываются уже после ввода.
5) Читай справку по set и for - там всё написано.
2Всепоглощающая дырень
Спасибо, без тебя бы не разобрался, что ставлю /а не там!
2Xray
Не, and не работает. Но по-другому сделал. Немного громоздко, зато работает.
if var1==value1 (
if var2==value2 команда).
Если надо ИЛИ:
if var1==value1 команда
if var2==value2 команда.
BTW возник вопрос №7.
7) Как можно проверить, введено ли значение переменной? Если я на запрос set /p var=. не введу ничего, а нажму Enter, как у меня запишется значение %var%?
Если проверять %var%==%var1%, где вар1 - не заданная переменная, выкидывает. Если проверять %var%==0, тоже выкидывает. На проверку с nul, конечно же, выкидывает. Задача - фильтровать вводимые данные. Надо, чтобы переменная а) существовала, б) была числовой и в) была в промежутке от x до y.
б) была числовой
Тоже точно не знаю. Но можно сделать так: выполнить арифметическую операцию в которой бы участвовала эта переменная. Например так:
set b=0
set a=string
set /a b=%a%+0
В этом случае b так и останется равным нулю. Если бы %a% было числом отличным от нуля, то значение %b% изменилось бы.
в) была в промежутке от x до y.
Читай справку по If - там есть операторы сравнения.
Продолжаю заниматься, и узнать еще кое-что.
8) Есть ли в cmd генератор случайных чисел?
9) Как сделать рабочей (chdir) папку, у которой русское название?
8) %random%
9) Так же как и с английским названием. Только сохраняй сам bat файл в кодировке DOS-866.
Мне 12 и я сам в этой теме плохо шарю, т.к. инфы в инете мало. Пж, без хейта.
3. Посмотреть список языков доступных в системе.(List.cmd)
Для того, чтобы посмотреть, какие языки доступны в системе необходимо переименовать батник в "List.cmd". В данной задаче проверяется наличие соответствующих языковых разделов в реестре. Следут учесть, что могут возникать ситуации, при которых в реестре присутствует необходимый раздел, но на самом деле языковой пакет может быть не установлен, а также возможна и противоположная ситуация. Поэтому не стоит полагаться на этот метод получения информации на 100 процентов.
Выкачать файл по FTP
Где файл file_to_ftp.txt будет у нас выглядеть следующим образом:
Подробнее о переменных
Если добавить флаг "/p", то выводиться значение после символа " bash">@echo off set /p a=Enter str echo %a% pause
следующий код вырезает строку от символа номер "a" до символа номер "b" НЕ включительно(счет идет с нуля, отрицательные числа - счет с конца от единицы). Если аргумент один, то он присваивается числу "b", а "a" = 0
следующий заменяет подстроки "a" в строке на строки "b":
2. Установить языковой пакет для системы.(Install.cmd)
Для установки языка необходимо разместить нужный cab файл языкового пакета в одной папке с батником. Батник нужно переименовать в "Install.cmd" и запустить. Процесс установки может занять определенное время, поэтому будьте терпиливыми и дождитесь его окончания - до тех пор пока в окне не отобразится надпись -
"Для продолжения нажмте любую клавишу". После выполнения установки рекомендуется перезагрузить систему. И пожалуйста, будьте внимательны в том какой именно cab файл вы используете.Так как, например файл, предназначенный для 32 битной версии(x86) не может быть установлен на 64 битную ситему(x64) и соответственно наоборот.
Имя текущего исполняемого батника
Нужно, например, для того чтобы вести один лог для нескольких батников.
4. Сохранить список названий языковых пакетов в файл.(Save.cmd)
В отличие от предыдущего метода получения информации об установленных в системе языковых пакетах - этот метод является более надежным. В данном случае проверяются не разделы реестра, а сам образ операционной системы на наличие интегрированных в нее языковых пакетов, с помощью определенных команд. После выполнения, в папке должен появиться текстовый файл Languages.txt со списком реальных имен установленных в системе языковых пакетов. Для выполнения данного действия необходимо переименовать батник в "Save.cmd" и запустить его.
Получить последний по дате создание файл
Для начала получим список всех файлов, отсортированных по дате модификации:
И пройдемся по нему циклом.
Логично, что по завершению цикла в переменной %lastfile% у нас будет последний по дате модификации файл ;)
Как вывести пустую строку в лог-файл?
Я не сразу догадался, что это можно делать вот так: :)
Т.е. нужно поставить точку после echo.
Что такое батники и с чем их едят
Наводим красоту
не эта :)
не делает ничего и служит комментарием к коду
Следующий код код работает, как команда "pause", но ничего не выводит на экран и не реагирует на нажатие клавиш(я потом объясню, как это работает).
А этот - меняет заголовок окна на "name"
Заголовок окна
Эта команда меняет цвет фона и текста, вместо a и b можно поставить любые шестнадцатеричные цифры(команда не сработает если a = b) см. таблицу ниже. Запись c одной буквой "а" аналогично записи "0a"
Таблица
Эта - досрочно завершает программу
Предыдущая команда выполнена успешно?
В большинстве случаев это:
Создаем нумерованные каталоги с инкрементом на единицу
Разобраться в коде предлагаю вам самим. :) Основная возможность, которую я хотел показать данным примером, это использование ключа /a команды set для вычисления выражений. ;)
Пытаюсь сменить в бесике язык на русский нажатием Ctrl+Правый shift не получается мне сказали что где то в опциях надо покопаться, кто что знает насчет этого, подскажите буду благодарен.
26.02.2012, 02:44
26.02.2012, 12:06
26.02.2012, 12:33
26.02.2012, 17:15
26.02.2012, 17:17
13.05.2012, 18:04
У меня в русской версии QBasic 1.0: RCtrl+RShift- переключение на русский; LCtrl+LShift- переключение на английский.
У меня два вопроса:
1. Как включить символы псевдографики(в школе, помнится, с их помощью таблицы делали).
2. Если набирать программу в блокноте, то какой тип файла(юникод, коир-8 и т.д.) надо ставить, чтобы в программе отображался русский текст, а не крякозябры
13.05.2012, 20:09
Тип файла устанавливайте один из следующих, какой будет (и если будет =). Часто эти названия обозначают одно и тоже, только по разному:
CP866, OEM, DOS, Текст MS-DOS
Также, обратите внимание, что блокнот, как минимум, до Windows XP, не может сохранять файлы в DOS кодировке. Как обстоят дела в Висте и 7 с этим - не знаю. В любом случае, вместо блокнота можно использовать для этого сторонний текстовой блокнотоподобный редактор - вроде Bred, AkelPad, Notepad++ и многие другие. Также можно конвертировать и MS-Word'om: сохраняете как обычный txt, а потом вылазит окно с выбором кодировки.
Символы псевдографики можно включить, хорошенько поковыряясь с настройками какого-нибудь русификатора, вроде keyrus. Увы, конкретно не помню, сам не пользовался ими.
Также, можно сделать хитрее, хоть и немного более муторно: зайдите в справку QBASIC: Help>Contents>ASCII Character Set. Вторая таблица снизу нам и интересна. Из нее можно таскать понравившиеся символы псевдографики через QBASIC-овский буфер обмена.
Циклы и условия
Цикл можно создать с помощью команды "for", синтаксис следующий:
(a b c) это список (не обязательно из 3-х элементов) и переменная %%i (нужно ставить символ после процентов, а не между) по очереди проходит по значениям в списке
Если добавить флаг "/l", то переменная в первый раз будет равна "a". К ней каждый раз будет прибавляться "b", пока она не станет больше "c"(тут размер ДОЛЖЕН равняться 3)
запустите этот код, тут все наглядно
Команда if выполняет код, если условие верно (или если поставить not после if, когда НЕ верно), вот операторы сравнения:
Батники это не мощный язык программирования, но, в то же время, на нем можно решить много рутинных задач. Цель статьи не просто рассказать о возможностях Windows-консоли, а показать их, решая практические задачи с которыми мне приходилось сталкиваться.
6. Удалить ненужный языковой пакет из системы.(Delete-xx-XX.cmd)
C помощью данного батника вы можете удалить языковой пакет, если считаете, что он вам больше не нужен. Для выполнения этого действия батник нужно переименовать. Имя батника должно включать слово "Delete" и соответствующий культурный код языка, как описано в предыдущем параграфе - "Delete-xx-XX.cmd". Если например, вы хотите удалить английский языковой пакет, то переименуйте батник в "Delete-en-US.cmd". Как и процесс установки языкового пакета, процесс его удаления занимает определенное время. Поэтому также рекомендуется дождаться его завершения, и появления на экране надписи - "Для продолжения нажмте любую клавишу". После удаления перезагрузите систему.
Подтверждение выполнения
Устанавливаем переменную answer в пустое значение (необходимо, для того чтобы затереть предыдущее значение, например, если батник исполняется несколько раз). set с ключом /p устанавливает значение переменной, которое вводится пользователем. Проверяем значение переменной и если оно не равно y завершаем выполнение батника.
1. Извлечь cab файл из exe файла языкового пакета.(Extract.cmd)
Языковые пакеты для Windows 7 предоставляются в виде exe файлов. Поэтому, прежде чем интегрировать пакет в систему, нам необходимо извлечь из него cab файл. Для Windows 8 и выше языковые пакеты уже представлены в виде cab файлов. Для того чтобы извлеч cab файл, необходимо поместить exe файл языкового пакета в одну паку вместе с батником. A сам батник переименовать в "Extract.cmd" и запустить. После этого в папке появится необходимый нам cab файл.
Архивирование файла с переменным именем
Задача состоит в том, чтобы заархивировать файл с именем, которое меняется ежедневно, но в другую папку. Следующим куском кода
мы выбираем все файлы по маске, исполняя команду rar a -ep c:\other_dir\%%~ni.rar %%i для каждого, где %%~ni это только имя файла.
5. Поменять язык пользовательского интерфейса.(xx-XX.cmd)
Поменять пользовательский язык интерфейса вы сможете, выбрав один из тех, которые установлены в вашей системе. Если вы выберите язык, которого у вас нет, то ничего страшного не произойдет. Так как прежде, чем внести какие-то изменения в реестр, батник проверяет действительное наличие данного языка. И если такого языка нет, то никаких изменений внесено не будет. Для того, что бы поменять язык - необходимо правильно переименовать батник. В качестве имени нужно использовать соответствующий культурный код языка (Language Culture Name). В конце приводится список таких кодов (В данный список включены только те языки, для которых были выпущены языковые пакеты). Таким образом, например, для изменения языка на русский - нужно переименовать батник в "ru-RU.cmd", а для изменения на английский в "en-US.cmd" и так далее. Если в вашей системе установлено несколько языков, то вы можете сделать соответствующее кличество копий этого батника с разными именами. Для того, чтобы изменения вступили в силу вам будет необходимо перезагрузить систему.
Переменные
Создать переменную можно с помощью команды set, синтаксис объявления следующий: P.S. это не совсем переменные, это скорее макросы (для тех к кто не знает C/C++ это именованный кусочек кода, имя которого заменяется на этот кусочек кода)
Если после "set" добавить флаг "/a" то:
Переменной задастся значение выражения, а не его текст, например:
Переменной можно присвоить ТОЛЬКО числовое значение
Чтобы обратиться к переменной, нужно окружить ее символами "%" (так %name%), пример кода:
«Функция» в батниках
Если мы исполняем в одном батнике несколько повторяющихся команд, но с разными значениями переменных, то это можно реализовать так:
Таким образом, у меня отсылается десяток разных файлов разным получателям, используя The Bat! Такой файл читать и редактировать намного удобнее, чем это было бы десять команд The Bat! подряд.
1. Извлечь cab файл из exe файла языкового пакета.(Extract.cmd)
Языковые пакеты для Windows 7 предоставляются в виде exe файлов. Поэтому, прежде чем интегрировать пакет в систему, нам необходимо извлечь из него cab файл. Для Windows 8 и выше языковые пакеты уже представлены в виде cab файлов. Для того чтобы извлеч cab файл, необходимо поместить exe файл языкового пакета в одну паку вместе с батником. A сам батник переименовать в "Extract.cmd" и запустить. После этого в папке появится необходимый нам cab файл.
Как получить текущий месяц, день, год и т.п.?
В батниках есть возможность получать подстроку используя синтаксис %variable:~m,n% Где variable это название переменной m – индекс первого символа, а n – количество символов подстроки.
Следовательно, если команда echo %date% (а формат даты может у вас отличатся) выведет 13.06.2009, то для того чтобы получить текущий месяц достаточно выполнить %date:~3,2% Таким образом, если нам необходимо, например, сформировать имя файла или директории, которое соответствует текущему месяцу и дню, мы это сделаем так:
Лично мне такое понадобилось для задания ключа /d для xcopy.
Читайте также: