ПредишенСледващото

Тайни прозорци, VR-онлайн команден ред - безплатна е-списание за всички
За съжаление, поради редица причини извън нашия контрол, в командния cmd.exe все още не е загубила своето значение. Много системните администратори да го използвате за управление на задачи, при липса на други средства за операционна система, или по навик. Въпреки простотата на своята, командния ред има редица интересни и неочевидни функции. В този пост ще се опитам да ви разкажа за някои без документи или малко известни функции на командния ред на Windows.

Един сигнал от прилеп-файл.

Вътрешното повикване CALL команда.
От помощ документацията на Microsoft ние знаем, че екипът на Call - извиква команден файл от друг, без приключване на първия файл, но малко хора знаят, че използването на поканата да се движат през вътрешния етикет на един и същ ПМС / бухалка файл, като командата Гото. @ Защо го направи, тогава има Гото "- те питам И след това, в допълнение към просто да се движат върху етикетите Обадете отбор има две характеристики :.

- "Има възможност" да се върне на мястото на своето призвание със специален етикет: EOF.
- Peredavavat знае как да ценим в "рутинна". Нека обясня с пример:
@echo разстояние
подпрограма Рем Call
обадете се на: SQRT 2
обадете се на: 8 SQRT
пауза
Отидох: EOF
вещно и тук вече се вижда. по-долу.
вещни *** Започнете рутина. ***
: SQRT
комплект / на outputval =% 1% * 1
Root ехо% 1% outputval%.
Отидох: EOF
вещни не излизам, но само за връщане до мястото на повикването
вещни *** Край на подпрограма. ***
След изпълнението на командата скрипта получаваме следния извод:

Тайни прозорци, VR-онлайн команден ред - безплатна е-списание за всички

Красива е, нали? Тази функция може да незабележим спести много редове код, а за известно време тя може да изглежда, че ние се програмира за пълноправен скриптов език. Да, струва си да се има предвид и фактът, че подпрограмата може да бъде предаден на множество аргументи тогава достъп до тях трябва да е същото като аргументите на командния ред% 1% 2% 3 ... и след това в ред.

Символи скрининг в прилеп-файла.
Какво става, ако искате да се подаде към текста на конзолата съдържа изявления или spetssivoly?

Например, необходимо е да се оттегли: "% TEMP%". Нека се опитаме да влезе в командния ред Echo% TEMP% на. резултат:

Тайни прозорци, VR-онлайн команден ред - безплатна е-списание за всички

На конзолата донесе променлива% TEMP%. Това не е това, което искаме ... За такива случаи, и има пресяване знаците "*" и "%". Достатъчно е да се замени специален знак и преводач, ще разберем, че ние искаме да отпечатате просто символ, а не като низ или проверете vyrazhenie.Dlya създадете команден файл:
@echo разстояние
Ехо ядат повече от тези Кифлички така че аз пия чай ^
Яжте повече от тези Кифлички така се пие чай ^
Яжте повече от тези Кифлички така се пие чай ^
Яжте повече от тези Кифлички така че аз пия чай
Ехо %% %% TEMP
пауза
резултат:

Както можете да видите цялата работа и спестяване на кода на лицето си. Въпреки факта, че в примера всичко се нареди, със защита, във файла партида трябва да бъдат по-внимателни, не всичко е гладко, така че трябва да се тества всеки скрипт.

Какво е enabledelayedexpansion?
Всъщност аз не исках да пиша за това, но тъй като в този пример се използва по отношение боядисани мъгливо запис.

Обикновено, когато се използват променливи в бухалката / CMD скриптове използвани строителство% променлива%, обаче, ако стойността на променливата е променило в тялото на цикъла и прочетете там, той не може да работи. Например:
за %% аз в (1,2,3) направя (
задайте "Var = %% аз"
ехо% Var%
Рем Не носи нищо
)
пауза
Ако се сблъскате с този пример на интерпретатора само на 3 пъти изпълняват ехо без или параметър. За да може всичко да работи правилно ще трябва да използвате разширен режим обработка команда. Той пита с командния параметър enabledelayedexpansion setlocal, и изключете endlocal екип. Ето един пример:
setlocal enabledelayedexpansion
за %% аз в (1,2,3) направя (
задайте "Var = %% аз"
ехо! Var!
Рем Изходи 1,2,3
)
пауза
Сега всичко изглежда, както е предвидено. Имайте предвид, че променливата в този случай е в рамка с удивителни знаци (!).

Създаването на динамични променливи в прилеп-файл? Лесно!
Когато пишете скриптове за обвивка, администратори, които, макар и малко, програмиран в други езици за програмиране (и CMD могат да бъдат отнесени към тях без прекъсване), има определен дискомфорт при обработката на големи обеми от данни. Наистина, при никакви CMD масиви! Ние можем да се избегне това ограничение с помощта на динамични променливи. За това ние използваме разширен режим обработка команда.

Например има текстов файл, трябва да го прочете и да донесе някои линии на екрана ще ви покаже как да го направите с помощта на динамични променливи. Първо, създаване на файл greeka.txt с това съдържание:
Цитат 1.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
2.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
3.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
4.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
5.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
6.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
7.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
8.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
9.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
10.Ehal гръцки другата страна на реката, вижда гръцки - в ракът на реката.
След това, ние започнем да пишем нашия скрипт:
@echo разстояние
setlocal enabledelayedexpansion
Включете режим на засилена обработка команда.
набор I = 0

Ние обяви спомагателни променлива.
за / F "символи = *" %% а в (greka.txt) направи (

Започнете цикъл прогресивна файл за прескачане.
комплект / A аз =! аз! 1

Увеличаване итератор спомагателен елемент.
комплект ул! аз! = %% а

Всъщност много прост дизайн за създаване на динамични имена на променливи str1, str2, str3 и така нататък.
)

Проверете и двамата работещи нашия скрипт.
Старт цикъл
Ехо Този 10 линия. ------- ^> ^>% str10%
ехо +++++++++++++++++++++++++++++++++++++++++++++
ехо +++++++++++++++++++++++++++++++++++++++++++++
Echo. и това е втората ------- ^> ^>% str2%
пауза
Както можете да видите на динамичните променливи, използвани доста удобни и лесни, те може да ви помогне да се замени на масива и гъвкавостта на кода.

Търсене и заместване на текст във файлове означава ПМС / бухалка файл.
Много администратори и потребители Power-Linux, когато запознаване с възможностите, ПМС, забелязват това досадно подробно за това как липсата на много инструменти на разположение за търсене и замяна на поднизове в досиетата.

Като цяло, под прозорците, има много инструменти за работа с низове в досиетата, включително пренесли до #nix системи (една и съща SED и supersed), но ние не търсим лесни начини, че не е съвсем ясно, защото в точното време всичко това не може да бъде под ръка.

Получи файлове отбелязани поговорка, размер

10 мегабайта, добре ... например, за да се движат нашия скрипт, като напишете "File_str_replace.bat greka.txt Хитлер гъркът". да замени всички думи на гръцкия Хитлер. Виждаме, че след пускането на половина минути (не е лошо за 20-годишната мамут конзола) в нашия файл поговорка променено на "Хитлер се качи от другата страна на реката, вижда Хитлер - в реката rak.Sunul Хитлер в рамото на река, Рак ръка Grecu - КПР". Можете да подобрите сценария, а дори и вратовръзка редовни изражението й, но това е фини технически подробности

Свързани статии

Подкрепете проекта - споделете линка, благодаря!