Утилита echo и создание bat файла через командную строку

Тема в разделе "Софт и инструменты", создана пользователем Hermanicus, 28 апр 2017.

  1. В отличии от большинства языков программирования, которым требуются компиляторы, отладчики или на худой конец – веб сервер Apache, желание создать командный файл через командную строку требует лишь наличия фантазии и прав администратора, ибо без них никуда. В простом варианте, CMD состоит из внутренних (cd, copy, md, dir….)и внешних (format, exe2bin, defrag…) утилит. Все внешние функции, это всего лишь исполняемые файлы, которым передается тот или иной параметр. Информацию о работе любой утилиты можно узнать, посредством ввода после нее /?. Например:

    Рядовому пользователю вряд ли придется обращаться к услугам CMD, ну а вот новичку-администратору или «продвинутому юзеру» это ох как надо. Давно, первые операционные системы были довольно скудными в своем функционале, и многие полезные софтины писали программисты и просто энтузиасты. Вообще, в те времена было неважно, какой язык программирования ты используешь, кайф был от самого процесса написания продукта. Конечно, создание файла через командную строку на подобие игры Марио нереально, но прикладные задачи решить можно. Охватить все прелести мы не сможем, но, начальные основы я покажу.

    Отображение текста и команд с помощью утилиты echo

    Утилита echo является многофункциональной. Первое ее назначение – вывод информации на табло монитора или во внешний документ. И так запустим оболочку и пропишем следующую команду: echo Hello, World!

    Скудно, но… такова традиция, ладно, теперь откроем текстовый редактор Notepad++ (или, на худой конец Блокнот), пропишем в нем приведенный выше текст, сохраним под именем HelloWorld.bat и вставим в корень диска. Запустить bat файл можно так же, как и любой другой исполнимый файл, но….если вы хотите увидеть результат роботы, то лучше запустить созданный файл непосредственно через командную строку:

    Строчка @Echo off – запрещает вывод команд на экран, и показывает только результат.

    А теперь, откроем снова блокнот, и пропишем следующие строки:

    @Echo off title My_Program echo Hello, World!>data.txt echo Microsoft Windows>>data.txt

    Сохраним все это добро под именем Test.bat. Запуск этого шедевра программного кода создаст текстовый документ data.txt, в котором будут строки

    Hello, World!

    Microsoft Windows title My_Program – title задает заголовок нашего творения (My_Program) echo Hello Word!>data.txt – символ > говорит, что данные надо перенаправить в data.txt echo Microsoft Windows>>data.txt – символ >> аналогичен > , только не затирает, а дописывает в конец данные. На будущее, что бы echo отобразила пустую строчку, то после нее надо поставить точку: «echo.».

    Робота с переменными и передача параметров

    Одним из качеств любой программы является ее универсальность. Есть два типа данных – статические (их нельзя изменить) и динамические (они могут меняться во время роботы программы). В каждом языке программирования существует такое понятие как переменная. Каждая переменная приобретает свой тип (строка, число, массивы). Можно создать через командную строку bat файл, и в нем объявить переменные , но, их тип всегда один – символьный. Кроме пользовательских переменных, существуют и переменные, созданные системой:

    %os% – название системы

    %windir% – путь к системном укаталолгу

    %systemdrive% – Путь к системному диску

    %programfiles% – Путь к Program Files

    %temp% – Путь к временной папке

    %tmp% – То же что и %temp%

    %allusersprofile% – Путькпапке All users

    %appdata% – Путь к папке Application Data для текущего пользователя

    %userprofile% – Путь к папке с документами и настройками текущего пользователя

    %path% – Тут находятся системные пути, то есть, когда вы запускаете CMD или paint через Пуск/выполнить, то система начинает искать эти программы в системных путях.

    %pathext% - Показывает стандартные расширения

    %ERR0RLEVEL% – отслеживает код завершения (exit code) последней использованной команды. Если команда выполнена нормально, код завершения равен нулю. Если при выполнении команды возникла ошибка, код завершения получает соответствующее ненулевое значение. Коды ошибок включают:

    1 – указывает на общую ошибку;

    2 – указывает на ошибку выполнения, т. е, команда завершилась неудачей;

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

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

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

    @Echo off

    Set valA=%0

    Set valB=%1

    Set valC=%os%

    Set valD=%windir% title %valA%

    REM Выводим информацию из переменных if "%valB%"=="1" (echo %valC%) if "%valB%"=="2" (echo %valD%)
    Нажмите, чтобы раскрыть...​
    Каждое значение, передаваемое сценарию, может бить определено через формальные параметры. Имя самого сценария представляется параметром %0. Параметр %1 представляет первый переданный сценарию аргумент, %2 — второй и так далее до %9 для девятого аргумента. В сценарии мы объявили 4 переменные: valA – присваиваем значение %0 (название сценария) valB – передаваемый парамет %1 valC – системная переменная %os% valD – системная переменная %windir%

    После REM выводится комментарий к сценарию.

    Условие if “%valB%”==”1″ (echo %valC%) говорит: если в качестве параметра передано 1, то вывести название системы, если 2 – название системного каталога.

    Сохраним командный файл, и запустим его со следующими вариациями:

    «Имя_файла» 1

    «Имя_файла» 2

    «Имя_файла» 3

    Как видим, результат зависит, в зависимости от переданных значений. Необходимость оздать файл через командную строку возникает в очень редких случаях.
    Предлагаю услуги по:
    1. Сделаю зеркало любого сайта в сети ТОR
    2. Блокировка ЛЮБОГО QIWI Номера (Быстро)


    [​IMG]
    Мануалы и софт выложены в ознакомительных целях вся ответственность за использования ложится на вас.
    Софт советую использовать на виртуалке.
     

Поделиться этой страницей