Jump to content
СофтФорум - всё о компьютерах и не только
Sign in to follow this  
CreatoR

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

Recommended Posts

В мире программирования, всё что касается Исполняемого пакетного файла (*.bat, *.cmd, далее просто батник), и командной строки, послышится наверное слишком забытым (мне так кажется по крайней мере) и слишком простым для обсуждения.

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

Но всё же... Я нахожу этот способ (управление из командной строки, и из батника) очень полезным.

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

Командную строку, я начинал "юзать" со списка который можно получить зайдя в коммандную строку виндоуса (меню пуск -> Выполнить -> Набираем cmd и жмём Enter) и написать -> "help" (без кавычек).

И с этого списка продолжал потехоньку продвигаться по "Ступенькам чайниковского программирования" :sm(100): (Хотя нельзя сказать что высоко поднялся :) )

Я созадаю эту тему для того, а вернее для тех, кто не совсем знаком с командами командной строки, и с их синтаксисами, и для тех кто просто хочет расширить круг своих знании в этой сфере... а также поделиться своими знаниями со всеми и, конечно же со мной....

С помощью Батника (исполняемого пакетного файла), я создал себе апдэйтер (обновку), который автоматический обновляет мои файлы на съёмном устройстве (disk on key - usb, флэшка), а также батник который делает бекап (резервирование) этих файлов. И ещё несколько батников (например для оперы), которые выполняют разные функции.

-Если кто-то знает какие книги может быть есть (хотя, точно есть) на эту тему, или всякие Faq'и, статьи и тому подобное, и где их взять (киньте ссылку чтоли...) - то прошу писать об этом в этой теме!

Заранее спасибо всем кто учавствует в развитии этой темы! gentleman.gif

-Если кому-то нужна помощь (вопросы, советы и т.д) то буду рад помочь всем чем смогу!

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

  • Как заменить определённую строку в текстовом фаиле, указав комманду в батнике? - Или что-то аналогичное этому действию.
    - Ответ тут....
  • Я где-то слышал, что можно задать команду, которая будет выполнять поиск всех связанных файлов, приложении, и корневых папок, определённого приложения. Так ли это, и если да, то как это осуществить - какова структура команды?
  • Как устанавливать системные переменные окружения (типа %programfiles%)?

:)

- Ответ начиная с этого поста... (Третьий пункт).

Edited by CreatoR
  • Upvote 1

Share this post


Link to post
Share on other sites

CreatoR:

По вопросам, по порядку:

  • В принципе, да. Но на практике это написать довольно муторно. Это можно сделать с использованием какого-нибудь из входивших в DOS и сохранившихся в Windows XP примитивных редакторов - техтового EDLIN и шестнадцатеричного (в нем еще и ассемблер и дизассемблер). Для выполнения нужных операций надо будет создать управляющий файл с командами, который с помощью средств перенаправления DOS (знак <) направить на вход редактора. Все это на очень примитивном уровне и нет смысла разбираться в жутко устаревших средствах.
  • Есть программы, которые выполняют эту задачу, но насчет наличия такой же в Windows не слышал. Хотя напрочь не исключаю, в Windows всякой малоизвестной всячины как в пещере у дракона.
  • Можно. Конструкция %......% просто подставляет в команду значение системной переменной с заданным между знаками процента именем. В Windows исходно существует, например, системная переменная windir, e меня ее значение C:\WINDOWS, пример ее использования в ярлыке смотри ниже. Можно добавить и свои переменные - командой SET.

Для получения удобной справки по командам командного интерпретатора Windows XP, изготовь из контекстного меню рабочего стола ярлык со следующей строкой внутри:

%windir%\hh.exe ms-its:%windir%\Help\ntcmds.chm::/ntcmds.ctm

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

В Vista будет новый очень мощный командный интерпретатор, Monad, специально нацеленный на управление системой и работающий с использованием объектно-ориентированной технологии. Его можно, впрочем, использовать и в XP, только надо установить на XP .NET Framework 2.0 и скачать бета-версию Monad с сайта Microsoft (правда, необходима бесплатная регистрация на сайте Microsoft). Но учебников по нему пока нет, а самому разбираться с ним будет сложно.

Вообще же, наверное, для сложных задач лучше изучить и использовать привычные средства вроде встроенного в Windows варианта Visual Basic (есть в ней и упрощенный вариант интерпретируемого Java).

P.S. Да, заметил, что ты хочешь без команды SET - тогда можно создать необходимые системные переменные через окно свойств системы ("Свойства" из контекстного меню My computer), там на вкладке Advanced (Дополнительно) есть кнопка Environment Variables (Переменные среды). Если там создать нужные переменные, Windows их запомнит и они будут существовать постоянно.

Edited by Тролль

Share this post


Link to post
Share on other sites

Для получения удобной справки по командам командного интерпретатора Windows XP, изготовь из контекстного меню рабочего стола ярлык со следующей строкой внутри:

%windir%\hh.exe ms-its:%windir%\Help\ntcmds.chm::/ntcmds.ctm

Я себе сделала - классная штучка. И прямо с таким текстом - отсюда скопировала.

И кто бы мог подумать, Тролль, что пользователи Windows XP так заинтеретуются командной строкой!!! :blink:

Уже третья тема за сегодняшний день!

Edited by TVS

Share this post


Link to post
Share on other sites

к Троллю! :cool:

По вопросам, по порядку:
  • ...Для выполнения нужных операций надо будет создать управляющий файл с командами, который с помощью средств перенаправления DOS (знак <) направить на вход редактора. Все это на очень примитивном уровне и нет смысла разбираться в жутко устаревших средствах.

-У меня есть смысл... Понимаеш, я хочу создать такой Switcher (переключатель), которы будет менять в файле '*.ini' строчку указывающую на местоположение языкового файла (чтобы менять таким образом язык программы -'Opera') - Я не хочу менять язык через настройки оперы, так как у меня мобильная опера (OperaUSB), а когда в ней меняю язык интерфейса через настройки, то в этом файле (opera6.ini) прописывается строка ведущая к языковому файлу, как полный адресс (i:\opera@USB\english.lng) - И когада я ставлю 'disk on key' (внешний носитель) на другой комп, где диск указан не как 'i:\', а допустим как 'е:\', то языковы файл не распознаётся.

Если можеш, то расскажи пожалуйста поподробнее как это осущиствить.

... изготовь из контекстного меню рабочего стола ярлык со следующей строкой внутри:

%windir%\hh.exe ms-its:%windir%\Help\ntcmds.chm::/ntcmds.ctm

-Класная вещь, даже не знал что такое существует на XP! Спасибо!

Вообще же, наверное, для сложных задач лучше изучить и использовать привычные средства вроде встроенного в Windows варианта Visual Basic (есть в ней и упрощенный вариант интерпретируемого Java).

-А как запустить этот встроенны Visual Basic?

...можно создать необходимые системные переменные через окно свойств системы ("Свойства" из контекстного меню My computer)...

-А можно ли создать файл *.bat, при запуске которого будет выполняться это действие :no: - Так как если я переустановлю винду, то хотелось бы просто запустить этот файл, и чтобы он задал системе сразу несколько таких системных переменных.

Share this post


Link to post
Share on other sites

CreatoR:

у меня мобильная опера (OperaUSB), а когда в ней меняю язык интерфейса...
У меня OperaUSB 9-й версии использует в ini-файле подстановку %operadir%, и никаких установок вручную не надо делать. Впрочем, у меня такое ощущение, что она эту строку вообще не использует, потому что при смене языка интерфейса она у меня не меняется. Но Opera - не мой любимый браузер, я им практически не пользуюсь. Кстати, есть также мобильный Firefox, а у меня на компьютере одно время стоял даже мобильный (почти, требуется запуск файла настройки Windows) Internet Explorer 7, который до того глючил в мобильном варианте, что я его сразу после опробования выкинул.

Однако языковые установки у меня OperaUSB помнит независимо от компьютера и буквы диска, специально проверил на двух компьютерах. Так что, может, просто взять последнюю версию Оперы?

А обработка текстового файла с помощью EDLIN требует времени и знаний для написания последовательности команд и запихивания их в файл. Для знакомства с этим редактором запусти, например, его из пункта Run меню Windows, напечатав там строку edlin a (тут a - простейший вариант имени файла, который загрузит или, как в данном случае, создаст редактор), редактор загрузится и выдаст подсказку *, там впечатай знак ? и после нажатия Enter получишь справку по командам edlin. Я думаю, желание работать с ним сразу пропадет...

В крайнем случае, возможно, проще было бы целиком заменить этот файл или собирать его из нескольких готовых частей, такая сборка легко делается командой copy. А еще проще этого не делать - помнит же OperaUSB у меня языковые установки. Может, дело в версии?

Вообще, по-моему, этот вопрос скорее для топика по Опере, чем по командной строке.

А можно ли создать файл *.bat...
Насчет ввода постоянных системных переменных из командной строки или пакетного (командного) файла - эти переменные Windows хранит в реестре в ключе

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Добавить их туда можно утилитой reg. Например, системную переменную с именем tttt и содержанием zzzzzzz можно создать из командной строки командой

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v tttt /t REG_EXPAND_SZ /d zzzzzzz

Можешь потом проверить наличие новой системной переменной их свойств My computer, а заодно и убрать ее, чтобы не замусоривала систему.

Как системные переменные выглядят в реестре, легко посмотреть, открыв с помощью regedit этот ключ, а детали по утилите reg можно посмотреть в справке этой утилиты, набрав в командной строке

reg add /?

Эта утилита позволяет, естественно, не только добавлять ключи, более общая и краткая справка вызывается как reg /?

А как запустить этот встроенны Visual Basic
VBScript, или, сокращенно, VBS уже готов к употреблению. Только надо кликнуть по файлу с программой для него с расширением vbs, и он автоматически запустится и выполнит программу. Прикладываю парочку простых примеров специально для тебя, может, понравятся :) Распакуй файлы из приложенного архива на рабочий стол и запусти двойным кликом по файлу. Их текст легко просмотреть из контекстного меню этих файлов или изменив их расширение на txt. Второй пример будет работать только на XP, для запуска на 2000 нужна установка в нее пары дополнительных компонентов.

P.S. Заменил второй пример в файле для скачивания на аналогичный с другим персонажем (исходный вроде бы не принадлежит к стандартной Windows XP). Или, если не хочешь заново скачивать, просто замени в первой строке второго примера слово peedy на merlin.

Examples.zip

Examples.zip

Edited by Тролль

Share this post


Link to post
Share on other sites

Тролль:

Что-то у меня не получилось сделать это:

Для получения удобной справки по командам командного интерпретатора Windows XP, изготовь из контекстного меню рабочего стола ярлык со следующей строкой внутри:

%windir%\hh.exe ms-its:%windir%\Help\ntcmds.chm::/ntcmds.ctm

:) Аааа, понял, все получилось!

Edited by Wu-Tang

Share this post


Link to post
Share on other sites

...Так что, может, просто взять последнюю версию Оперы?

-Я и не знал что есть уже OperaUsb v9!

В крайнем случае, возможно, проще было бы целиком заменить этот файл или собирать его из нескольких готовых частей, такая сборка легко делается командой copy. А еще проще этого не делать - помнит же OperaUSB у меня языковые установки. Может, дело в версии?

-Я так и сделал, я сделал switcher.bat (он также и русифкатор), который копирует резервные файлы с папки (заранее скопированы - один содержит строку ведущую к russian.lng, а другой к english.lng) - Впрочем вот состав этого файла (Switcher.bat):

  • echo off

    notepad transfer\instru~1.txt

    color f4

    echo ###########################################################

    echo WARNING: Press 'any key' ONLY if your 'OPERA'

    echo is mobil version (Opera@usb) - if not, close this window by top-rihgt 'x'

    echo ###########################################################

    pause

    if exist profile\Opera6-ru.ini goto end1

    if exist russian.lng goto ok

    copy /y transfer\russian.lng russian.lng

    del profile\opera6.ini

    copy transfer\opera6-ru.ini profile\opera6-ru.ini

    ren profile\opera6-ru.ini opera6.ini

    goto end

    :ok

    cd transfer

    ren opera6-en.ini opera6.ini

    copy /y opera6.ini ..\profile\opera6.ini

    ren opera6.ini opera6-en.ini

    copy opera6-ru.ini ..\profile\opera6-ru.ini

    cd ..\

    if exist profile\opera6-ru.ini goto end2

    if not exist profile\opera6-ru.ini goto erorrmsg

    :end1

    del profile\opera6.ini

    ren profile\opera6-ru.ini opera6.ini

    color 3f

    echo ################################

    echo Created by CreatoR #

    echo ('Opera' now is on Russian) #

    echo ################################

    echo ! ! !

    echo !Restart the Opera now!

    pause

    goto finish

    :end2

    color 4f

    echo ################################

    echo Created by CreatoR #

    echo ('Opera' now is on English) #

    echo ################################

    echo ! ! !

    echo !Restart the Opera now!

    pause

    goto finish

    :end

    color 8f

    echo #########################################

    echo Created by CreatoR #

    echo (Russification has finished Secceseful!) #

    echo #########################################

    echo ! ! !

    echo !!!Restart the Opera now!!!

    pause

    :erorrmsg

    echo off

    echo Erorr: files not found! reinstall the Switcher!

    :finish

-А на счёт версии, я не знаю где взять, у меня 8.53, и в ней как я писал ранее, путь прописывается!

Вообще, по-моему, этот вопрос скорее для топика по Опере, чем по командной строке.

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

...эти переменные Windows хранит в реестре в ключе

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Добавить их туда можно утилитой reg. Например, системную переменную с именем tttt и содержанием zzzzzzz можно создать из командной строки командой

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v tttt /t REG_EXPAND_SZ /d zzzzzzz

-За это, ООгромное тебе :thank1:... Давно хотел узнать как это осуществить!

...Прикладываю парочку простых примеров специально для тебя, может, понравятся ;)

-Класная вещь (а именно файл 'today.vbs - Второй не работает), можно использовать как вывод сообщения. Кстате, недавно скачал книгу по Visual basic, и чувствую скоро начну её изучать не нашутку!

P.S: Команда edlin не работает в пуск -> Run (Выполнить) - просто запускается чёрное окно, типа командной строки, и через пару секунд тухнет, и всё. :g:

А, чуть не забыл, как можно изменить кодировку текста при выводе сообщения через echo?

Share this post


Link to post
Share on other sites

CreatoR:

на счёт версии, я не знаю где взять, у меня 8.53
Тут.
Второй не работает
Я просто не помнил точно, какой MS Agent установлен в XP изначально, у меня установлено много дополнительных :blink: . Попробуй тогда другой вариант второго примера, я изменил файл в моем исходном посте.
Команда edlin не работает в пуск -> Run (Выполнить) - просто запускается чёрное окно, типа командной строки, и через пару секунд тухнет, и всё.
У меня было написано: "напечатав там строку edlin a". Ты, видимо, вводил без a. Впрочем, вместо a подходит любое имя, оно будет именем файла, который создает (или загружает существующий, если такой нашелся в папке) редактор.
как можно изменить кодировку текста при выводе сообщения через echo?
Команда ECHO просто выдает все, что за ней, на экран, без всяких перекодировок. Если надо перекодировать, надо писать специальную программу.

Share this post


Link to post
Share on other sites

CreatoR: Тут.

-Спасибо :) , я и не знал что у юэсбешной оперы есть сайт!

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

-У меня русский не выводит (точнее выводит, но иероглифы :D) - Когда я хочю вывести сообщение на русском (Пример: echo Всем привет!) то вместо 'Всем привет', выводится что-то вроде этого -> הדקצ פרןהקא!

Как это исправить? ;)

Share this post


Link to post
Share on other sites

CreatoR:

Как это исправить?
Попробуй перед использованием команды echo в окне командного интерпретатора поменять кодовую страницу. Текущая будет показана при вводе команды chcp. Поменять кодовую страницу, в которой отображаются символы, можно командой chcp 866 для установки русской кодировки DOS или chcp 1251 для русской кодировки Windows. Для ясности, тут 866 и 1251 - номера кодовых страниц. Может быть, еще надо поменять из свойств окна командного интерпретатора (правой кнопкой мыши по заголовку окна) шрифт на другой.

И попробуй мой второй подправленный пример - интересно, после проделанной замены персонажа он у тебя заработает? Отпишись о результатах...

Share this post


Link to post
Share on other sites

CreatoR: Попробуй перед использованием команды echo в окне командного интерпретатора поменять кодовую страницу. Текущая будет показана при вводе команды chcp. Поменять кодовую страницу, в которой отображаются символы, можно командой chcp 866 для установки русской кодировки DOS или chcp 1251 для русской кодировки Windows. Для ясности, тут 866 и 1251 - номера кодовых страниц. Может быть, еще надо поменять из свойств окна командного интерпретатора (правой кнопкой мыши по заголовку окна) шрифт на другой.

И попробуй мой второй подправленный пример - интересно, после проделанной замены персонажа он у тебя заработает? Отпишись о результатах...

-Это пробовал, меняю на chcp 1251, и даже сообщение о том, что надо нажать клавишу для продолжения, становится на не понятном мне языке...

А когда вожу с параметром 866 (или вообще не пользуюсь chcp) то русский язык, после команды echo (это то что я имел ввиду раньше) становится тоже не понытным.

-И ещё, когда я создаю файл *.bat, и копирую через него файл, путь к которому ведёт через папку с названим на русском языке (например: copy file.txt %userprofile%\Главное меню\file.txt), то он ругается что мол не верный путь. Я раньше думал что проблема у меня в винде, но я проверил это на другом компе, где виндоус только-что установленны. Что делать...Подскажи.

P.S: персонаж заработал, класная штука :bye1:... Спасибо!

Share this post


Link to post
Share on other sites

CreatoR

становится на не понятном мне языке...
Уверен, что ты не менял шрифт в окне. Поменяй его на TrueType шрифт. Или можешь по-прежнему работать в растровом шрифте, но тогда для правильного отображения надо работать в полноэкранном режиме (из окна в полноэкранный режим и обратно переходят по Alt+Enter). Попробуй в этих режимах переключение кодовых страниц на указанные, особенно 866, еще можно попробовать дополнительно кодовую страницу 855.

После переключения набирай прямо с клавиатуры русские буквы, должны отображаться нормально.

И ещё, когда я создаю файл *.bat, и копирую через него файл, путь к которому ведёт через папку с названим на русском языке (например: copy file.txt %userprofile%\Главное меню\file.txt), то он ругается что мол не верный путь.
Естественно, там же в середине пути к файлу стоит пробел, вот и получается вместо одного параметра два, притом неправильных. Поставь слова "Главное меню" в кавычки, или целиком весь параметр "%userprofile%\Главное меню\file.txt". Иногда срабатывают оба варианта, но бывает, что работает только один.

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

Вот тебе еще обещанный комбинированный скриптик VBS для развлечения. Чтобы он говорил вслух, надо скачать и установить компоненты SpeechAPI и TTS-машину с сайта Microsoft:

http://activex.microsoft.com/activex/contr...api/spchapi.exe

и

http://activex.microsoft.com/activex/contr...t2/lhttsrur.exe

В сумме это чуть меньше 4 Мегабайт.

Иначе, вероятно, будет только разевать рот. Как я уже заметил раньше, у меня на компьютере много чего установлено дополнительно и мне трудно проверить, чего будет нехватать на "чистой" Windows.

mclock.zip

mclock.zip

Share this post


Link to post
Share on other sites

Значит так, во-первых извеняюсь за нуднные вопросы и непонятки. Во вторых, хочу выразиться попонятнее:

...CreatoR Уверен, что ты не менял шрифт в окне. Поменяй его на TrueType шрифт....

У меня там всего два шрифта, и это не помогает, и я не имел ввиду что плохо отображается на лету, а при работе с пакетным файлом - т.е, когда я ввожу, скажем эти строки:

echo off

echo Как дела!

pause

-то при запуске пакетного файла (с этим содержанием), сообщение 'Как дела!' отображается иероглифами (а сообщение 'Для продолжения нажмите.....' отображается нормально).

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

-Не в пробеле дело, я ведь строчку могу написать и так: copy file.txt %userprofile%\Главное~1\file.txt

-Самое странное в этом всём, является тот факт, что в командной строке (ту, которую я запускаю через меню пуск -> выполнить -> cmd) всё нормально, как при выводе сообщения через 'echo', так и при копировании файлов в папку 'Главное меню'.

Вот тебе еще обещанный комбинированный скриптик VBS для развлечения...

-Конечно извени за моё невежество :blush2: , но как его запускать, я нашёл там 4 папки, и только в одной есть экзешник (EliteSpy.exe), и как я понял, он следит за процессами окон, и выдаёт инфу о памяти, о процессах, и гинирирует пароли (только не понял для чего???)

-Кстате, на счёт переменных (в предыдущих постах), когда запускаю батинок (*.bat файл), с тем текстом что ты мне дал, то во-первых, в реестре создаётся строковый параметр тип у которого REG_EXPAND_SZ, разве не должен быть просто REG_SZ...хм..? Ведь когда я создаю переменую через свойства системы, то в реестре создаётся строковый параметр с типом REG_SZ. Может исправить в батинке REG_EXPAND_SZ на REG_SZ?

Во-вторых, в свойствах системы, там где создаются переменные, я так и не понял, создавать в окне где переменные пользователя, или там где системные переменные :g: , или может в обоих :blink: ?

Share this post


Link to post
Share on other sites

CreatoR Писал:

-Конечно извени за моё невежество :g: , но как его запускать, я нашёл там 4 папки, и только в одной есть экзешник (EliteSpy.exe), и как я понял, он следит за процессами окон, и выдаёт инфу о памяти, о процессах, и гинирирует пароли (только не понял для чего???)

:blush2: ИЗВЕНЯЮСЬ, не тот архив распоковал :g: , а штука конечно класная, огромное, человечное Спасибо :blink: А именно, за внимание, терпение, и конечно-же за помощь!

Share this post


Link to post
Share on other sites

CreatoR:

REG_EXPAND_SZ просто более универсальный тип. Возможно, будет работать и REG_SZ, надо просто попробовать, я не пробовал. Обычно используют REG_EXPAND_SZ, он же приведен в справке по REG ADD. Кстати, имей в виду, что при использовании команд не отдельно, а в пакетных файлах, содержащиеся в них знаки процента надо удваивать, как это показано в примере той же справки (а бывает, что даже и больше, чем удваивать, но пока это нам не нужно).

Насчет bat-файла (кстати, обычно используют сокращение не "батинок", а "батник") - я же написал, надо пробовать варианты с разными кодовыми страницами и шрифтами - и то и другое одновременно. У меня пакетный файл правильно работает при выборе кодовой страницы 1251 и шрифта Lucida Console . На всякий случай посылаю мой пакетный файл. Если ты раньше не настраивал шрифт для командного процессора, можно это сделать при первом запуске пакетного файла (в окне будут кракозябры, устанавливаешь шрифт Lucida Console из контекстного меню заголовка окна и при последующих запусках все должно быть тип-топ). Или даже проще, сделай к файлу ярлык и в свойствах ярлыка установи этот шрифт.

Что у тебя всего два шрифта - правильно, у всех два, из них один - Lucida Console, он шрифт TrueType, это видно по его обозначению.

Вообще в России, как известно, три беды: дороги, дураки, десять кодировок кириллицы. С другой стороны, Windows - АМЕРИКАНСКАЯ операционная система, система, рассчитанная на английский язык, во всяком случае, для управления ею. Это мне напоминает, как у меня один знакомый все хотел компьютер с BIOS'ом на русском. Американцы считали, что человек, которому нужны пакетные файлы (и не только), должен знать английский. Кому надо русифицировать что-то для специалиста? Разве его не учили английскому? Русификация в Windows - попутная вещь и только для конечного пользователя, который о компьютере знает столько же, сколько о телевизоре, и пакетными файлами не пользуется. Что хоть что-то сделано в этом направлении - уже хорошо, серьезно этим никто не занимался.

test1.zip

test1.zip

Share this post


Link to post
Share on other sites

Тролль:

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

Вот только вопрос: будет ли такая установка изменятся в зависимости от того на какой ОС будет запущен этот файл (всмысле если я перреустановлю винду)? - Если надо настраивать каждый раз заново после переустановки винды (шрифт естественно - так как после того как я изменил шрифт в свойствах окна пакетного файла, и нажал на ок, то у меня он спросил, мол выбрать эти настройки для всех окон с таким именем, или только для текущего) , то можно как-то встроить такую команду, которая автоматом будет устанавливать такой шрифт для всей операционки?, ну что-то аналогичное батнику с установкой переменной (тот что ты мне советовал) только чтоб шрифт для командной строки и для пакетного файла устанавливал?

-Кстате, на счёт переменных, я так и не понял, в каком окне создовать переменные, в том что с переменными пользователя, или в то что с системными переменными? :doh: , или в обоих? :flowers:

Share this post


Link to post
Share on other sites

Я раскопал в инете такую замечательную книгу, что скорее спешу поделиться с информацией о находке :D

Книга называется "Командная строка Microsoft Windows. Справочник администратора."

StanekWindowsCommandLine_s.gif

Данная книга - краткий, но исчерпывающий справочник, посвященный командной оболочке и базовым средствам командной строки двух операционных систем - Microsoft Windows XP Professional и Microsoft Windows Server 2003. Здесь рассматриваются все основные вопросы, связанные с выполнением стандартных задач администрирования из командной строки, в том числе настройка Windows-служб и управление локальными и удаленными системами, автоматизация мониторинга различных системных параметров, анализ и мониторинг процессов, управление дисками и файловыми системами, создание базовых и динамических дисков, а также RAID-массивов, конфигурирование службы каталогов Active Directory, администрирование TCP/ IP-сетей и многие другие насущные вопросы.

Книга адресована системным администраторам и специалистам по технической поддержке Microsoft Windows XP Professional и Microsoft Windows Server 2003, а также пользователям, желающим детально изучить командную оболочку и инструменты командной строки Windows.

Издание состоит из 15 глав, приложения и предметного указателя.

А тут её можно скачать! ;)

З.Ы: Тролль:

-Если не трудно, ответь пожалуйста на заданные мною ранее вопросы:

...можно как-то встроить такую команду, которая автоматом будет устанавливать такой шрифт для всей операционки?, ну что-то аналогичное батнику с установкой переменной (тот что ты мне советовал) только чтоб шрифт для командной строки и для пакетного файла устанавливал?

-Кстате, на счёт переменных, я так и не понял, в каком окне создовать переменные, в том что с переменными пользователя, или в то что с системными переменными? :g: , или в обоих? :bye1:

З.Ы:

Вот ещё забыл, есть ссылка на другой формат этой книги - В *.ocr (в pdf формате она просто изуродованна :bye1: )

Share this post


Link to post
Share on other sites

CreatoR:

...можно как-то встроить такую команду, которая автоматом будет устанавливать такой шрифт для всей операционки?, ну что-то аналогичное батнику с установкой переменной (тот что ты мне советовал) только чтоб шрифт для командной строки и для пакетного файла устанавливал?
Кодировку устанавливать можно, например, командами %SystemRoot%\system32\cmd.exe /K chcp 1251 или %SystemRoot%\system32\cmd.exe /K chcp 866 , но для установки вида используемого в окне командной строки шрифта прямой команды нет. Где-то Windows, конечно, хранит название используемого шрифта, но где именно, я, к сожалению, не знаю.
на счёт переменных, я так и не понял, в каком окне создовать переменные, в том что с переменными пользователя, или в то что с системными переменными? , или в обоих?
В любом, значение переменной для пользователя ищется сначала в его переменных, а если там его нет - в переменных системы. Соответственно установленная для пользователя переменная окружения будет действовать только для этого пользователя, а установленная для всей системы - для всех пользователей, у которых нет пользовательской переменной с таким же названием. Можно, конечно, задать переменные и там и там, но если их значения одинаковы, в этом нет смысла. Edited by Тролль

Share this post


Link to post
Share on other sites

CreatoR: Кодировку устанавливать можно, например, командами %SystemRoot%\system32\cmd.exe /K chcp 1251

Спасибо!

А что значит /k, на мой взгляд и без этого параметра можно... :cool:

Share this post


Link to post
Share on other sites

CreatoR:

А что значит /k, на мой взгляд и без этого параметра можно...
Командный процессор придерживается другого мнения :cool: . Ключ /K в этой строке нужен, чтобы командный процессор понял, что 1251 или 866 в строке дано для команды chcp, а не как второй параметр для него самого.

Попробуй создать два командных файла, с ключом /K и без него, меняющие кодовую страницу. Например, если у тебя по умолчанию установлена 866, пусть они меняют ее на 1251. После запуска любого из этих файлов в открывшемся окне введи команду chcp без параметров, она выдаст текущую кодовую страницу. Ты увидишь, что в файле с ключом /K она поменяется, а в файле без ключа /K - нет.

P.S. Или тогда и командный процессор специально не вызывать, а просто использовать команду chcp 1251 или chcp 866 в bat-файле, это проще, этот вариант был уже в начале топика. Вариант с вызовом командного процессора хорош, например, для вставки в ярлык, он и окно для ручного ввода команд откроет, и сразу команду смены кодовой страницы выполнит.

А вид шрифта командной строки на Lucida Console после переустановки операционки или при использовании bat-файла на другой машине все равно придется менять вручную :bye1:

Edited by Тролль

Share this post


Link to post
Share on other sites

Всё ясно, на счёт кодировки исчерпывающе дал ответ (Тролль) -Спасибо!

-А воть такой вопрос: -Можно как-то вставлять в командную строку (в ту что запускается с меню-> выполнить->cmd) текст из буффера обмена? Или даже копировать с неё (с команд. строки). Т.е, скажем, как в блокноте вставка/копирование через ctrl c/ctrl v, чтоб также (подобно) и в/из командную/ой строку/и.

P.S: ИМХО такое невозможно...но вдруг... :doh:

Share this post


Link to post
Share on other sites

CreatoR:

Cmd этого не умеет, но для этого есть специальные утилиты командной строки. Например, 4console или In2clip (эта умеет только копировать в буфер).

Share this post


Link to post
Share on other sites

...А вид шрифта командной строки на Lucida Console после переустановки операционки или при использовании bat-файла на другой машине все равно придется менять вручную :)

Не обязательно!

Оказывается, реестер хранит в себе необетаемые (мной :) ) возможности!

Я нашёл в реестре параметр отвечающий за установку шрифта по умолчанию. Он (реестер) хранит его тут:

HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe

-И когда я экспортирую (после изминения шрифта по умолчанию в командной строке на 'Lucida Console') эту папку (HKEY_CURRENT_USER\Console\), и затем, проверки ради, изменяю обратно шрифт на 'Точечные шрифты', то после запуска того файла реестра (экспортированного ранее), я проверяю в свойствах окна командной строки, и там как ожидалось - шрифт по умолчанию стоит 'Lucida Console'!

Теперь следовательно вопрос: Как поместить данное действие (выполняемое экспортированным файлом реестра) в пакетный (исполняемый) файл?

Share this post


Link to post
Share on other sites

CreatoR:

Теперь следовательно вопрос: Как поместить данное действие (выполняемое экспортированным файлом реестра) в пакетный (исполняемый) файл?
Переписывать параметры по одному можно, конечно, с помощью упоминавшейся раньше утилиты REG, но это будет очень неудобно, нужно будет много вызовов. Так что гораздо легче не разбираться с отдельными параметрами и ключами, а заменить целиком нужную часть реестра с помощью regedit.

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

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

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

Чтобы обойтись без запроса, надо использовать команду

regedit /s имя_файла

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

"TestValue" =-

а если надо убрать целиком ключ со всеми его параметрами, то знак - записывают перед его именем, например, чтобы убрать ключ [HKEY_LOCAL_MACHINE\SYSTEM\Test], надо иметь в файле строку

[-HKEY_LOCAL_MACHINE\SYSTEM\Test]

Edited by Тролль

Share this post


Link to post
Share on other sites
...Можно сделать несколько таких файлов при разных состояниях реестра, а затем менять реестр, загружая эти файлы.

-А для чего делать файл который будт возвращать прежнее состояние, разве при установке шрифта 'Lucida Console', командная строка будет некоректно отображать/обрабатывать латиницу?

Чтобы обойтись без запроса, надо использовать команду

regedit /s имя_файла

-Я имел ввиду как внести эти данные (см. ниже) используя только батник? - Я уже отделил то что конкретно нужно для шрифта (и его размера):

[HKEY_CURRENT_USER\Console]

"FaceName"="Lucida Console"

[HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cmd.exe]

"FontSize"=dword:00120000

"FontFamily"=dword:00000036

"FontWeight"=dword:00000190

"FaceName"="Lucida Console"

З.Ы: Я заметил, что при нажатии прав. кнопки мыши по заголовку камандной строки, в контекстном меню есть две возможность изменить шрифт - одна по нажатию на 'Умолчания', а другая по нажатию 'свойства'. Так в какой же из них следует изменять шрифт? (данные реестра вверху основываются на устаноленных шрифтов в обоих из возможностей).

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...