PDA

Просмотр полной версии : Программирование в Cmd (введение для новичков)


_Pantera_
01.07.2008, 23:39
Это всего лишь введение в команды cmd, не судите строго, статья писалась для Новиков, та и многим другим я думаю пригодиться =)

Наверно многие и не подозревают, что cmd это универсальная оболочка,
которая позволяет не просто администрировать систему, но и программировать!
Конечно уровень языка не столь высок, как например с++, но все же...

Для начала, напишем маленькую программку, которая будет выводить строчку, записанную в переменную.
Заходим на диск С:\ и создаем там что то типа program_1.cmd (можно *.bat)
открываем его блокнотом и вписываем туда следующие строки:

rem программа_1
cls
@echo off
color 0A
set string=Hellow World!!!
echo %string%

rem - используеться для описния коментариев
cls - если кто еще незнает, это отчистка экрана
@echo off - выключаем отображение команд на экране. Обратите внимание на @
перед ECHO! Она предотвращает эхо-отображения команд в отдельной строке.
color 0A - задаем цвет фона и текста
set string=Hellow World!!! - set используется для описания переменных
echo %string% - вывод на экран переменной, обратите внимание на %%, это
обозначает, что это действительно переменная, а не строка!


С кодом разобрались, теперь посмотрим на исход программы! Запускаем ее на выполнение через cmd:
program_1.cmd
Результат выполнения будет, как вы догадались Hellow World!!! Ярко-зелеными буквами на черном фоне :)

Теперь немножко усложним задачку, добавим в этот код условие!

rem программа_2
cls
@echo off
color 0A
set a=1
set timer=10
if %a%==1 (shutdown /r -t %timer% -c "Вас похекали"
) else (echo a!=1)

Я думаю вы уже догадались что будет на выводе. Мы сравниваем значение записанное в переменную “а” с 1, если условие истина, то компьютер перезагрузиться через 10 секунд, в ином случае на вывод подается надпись, что a!=1. Пример банален и прост,
ну зато понятен для многих.

А теперь перейдем непосредственно к циклам. Рассмотрим самый элементарный пример:

rem программа_3
cls
@echo off
color 0A
for /l %B in (0,1,10) do echo %B

данная программа выведет в столбик цифры, от 0 до 10 с шагом 1 =) все просто, как ...
А теперь немного сложнее, for может использоваться в более весомых целях,
например для перебора файлов, для примера можете написать в cmd:

for %B in (C:\*.cmd) do (echo %B)

В ответ вы получите все ваши программки с расширением *.cmd

Также циклом for можно перебрать каталоги, к примеру

for /d %B in (C:\*) do echo %B

Покажет все каталоги на диске С:\ (Обратите внимание, только каталоги, а не подкоталоги!)


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

(for /f "tokens=1-5" %A in (users.txt) do @echo %D) > emails.txt

К примеру, база у нас «идеальная», типа:

Vasya Pupkin heck 111@mail.ru 81231111111
Dima Ivanov lamer 222@mail.ru 81232222222
Genya Petrov lamer 333@mail.ru 81233333333
Egor Sidorov lamer 444@mail.ru 81234444444
Anton Popovich lamer 555@mail.ru 81235555555
Kostya Terentev lamer 666@mail.ru 81236666666
Vanya Onisenko lamer 777@mail.ru 81237777777
Misha Loshenko lamer 888@mail.ru 81238888888
Vlad Sorochinskiy lamer 999@mail.ru 81239999999

Мы с помощью цикла перебираем все слова, и записываем 4(%D) в файл emails.txt =) надеюсь это кому то пригодиться.

Что же еще можно сделать с cmd?

Опишу свой пример. Я занимаюсь созданием веб-сайтов, которые используют базу даннях mysql. С базой я работаю через консоль, для меня привычнее. Что б не париться я написал небольшую программку mysql.cmd которая к ней будет подключаться:

v:
cd usr\local\mysql4\bin
mysql.exe -u root –p pass

v – виртуальный диск на котором стоит денвер
root – имя пользователя
pass – пароль пользователя

Нам остается ее запустить и наслаждаться работой с базой

PS Ну вот собственно и все! Статья получилось маленькой, но я все же надеюсь, что она кому то будет полена =)

PPS в коде левый слэш кушаеться фильтрами форума...

desTiny
07.07.2008, 10:56
даже на ачат статью выкладывали:
https://forum.antichat.ru/nextoldesttothread24430.html

flipper
07.07.2008, 19:42
Программирование в cmd :)
/me Вспомнил, что теперь мелкософт озаботилась командной строкой и сделала кривой PowerShell - лучше бы его рассмотрел...

IIAHbI4
07.07.2008, 19:51
бесполезная статья тк мало раскрыта тема , только оператор for, если ты пишешь для новичков дак раскрой хотябы основы if else и т.д., всего 1 пример(я имею в виду более менее нормальный), если ты пишешь статью то пиши или полно или что то новое, ато мало и бесполезно, подобных убогих статей и за пределами античата достаточно
p.s. ничего личного
паскалем попахивает. школьники с 9 класса проходить начинают.

Only
13.07.2008, 15:03
for /d %B in (C:\*) do echo %B

(for /f "tokens=1-5" %A in (users.txt) do @echo %D) > emails.txt


Тема синтаксиса не раскрыта

Fen-Omen
13.07.2008, 20:12
Данный синтаксис характерен для большинства языков программирования высокого уровня... Что же тут раскрывать-то.

Fen-Omen
13.07.2008, 20:20
Не согласен... В целом это и есть "Программирование средствами cmd".

Only
13.07.2008, 23:57
Данный синтаксис характерен для большинства языков программирования высокого уровня... Что же тут раскрывать-то.
Ну да,введение для новичков...Ведь все новички знают большонство языков программирования высокого уровня...

Взломщек
13.07.2008, 23:59
написал и скомпелировал преватный вирус тс спс

De-visible
14.07.2008, 00:06
написал и скомпелировал преватный вирус тс спс
Ты интересно какой именно из всех легенд Онтечада...
--------
Тс молодец, хоть и уровень начальный так сказать), для новичков как раз, хоть кто то еще пишет статьи...

Ch3ck
03.08.2008, 13:02
эта хуета посложенее C++
Требует знание команд. +/-
_http://www.kb.mista.ru/article.php?id=487
_http://kniga.nnm.ru/window_skripty_dlya_administratora =>
_http://depositfiles.com/ru/files/2351781

Buffalon
21.11.2008, 02:37
1.Баян какой то?Типа первые шаги программирования???что ле.

Woolf89
06.12.2008, 17:16
Чего вы все на человека набросились? В начал было ясно написано что это ПЕРВАЯ статья. Решил попробовать свои силы. Ну подумаешь немного не угадал с темой. Ничего страшного, первый блин - комом. Может его статья действительно для кого-то полезной стала и заставила пошевелить серым веществом.

eraservoid
10.12.2008, 20:20
Ну это как всегда...прилюдное избиение новичка

root_sashok
10.12.2008, 21:57
руки
а так cmd не советую. бедный набор комманд. на ачате на главной есть темка хитрости бат

DeepBlue7
28.01.2009, 02:03
Добавь чего-нють попрактичней... например запуск телнета через .bat файлик...

habve
04.02.2009, 12:49
Спасибо что компа помогли перезагрузить второй прогой а то уже забыл что это такое :(

dyExplode
04.02.2009, 21:09
почемуто почитав тему статьи ожидал увидеть что нибудь про програмирование в debug.exe

Revizia
15.03.2009, 17:29
работает но мало...

xForgan
17.03.2009, 02:10
_http://www.rsdn.ru/article/winshell/batanyca.xml#EFCAE Здесь можно подчерпнуть еще