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

Подобряване на скриптове скриптове за командния ред - това са файлове с обикновен текст, който се тълкуват от черупката като набор от команди, за да бъдат изпълнени последователност. История скриптове за командния ред започват в зората

ИТ инфраструктурата за вашето предприятие

Подобряване на скриптове

10 съвета за използване на скриптове, прозорци го про

Ако е възможно, използвайте околната среда променливи

Използването на променлива в скрипт, можем да заключим, че името на променливата между знаци за процент (%), както и при изпълнението на скрипта, знак на сто и текста между тях заменя със стойността на тази променлива. Използването на променливи прави кода на скрипта по-гъвкави, така че има по-голям шанс успешно работещи на различни компютри. Така например, в сценария на черупката не е трудно-код, който трябва да инсталационната директория на Windows. Вместо това, използвайте променлива SystemRoot, която винаги ще сочи към конкретна инсталационната директория на Windows. Така че, екипът

Не трябва да очакваме обичайните партида файл, за да Command.com ще работи също така добре в Cmd.exe

Черупката Cmd.exe, използвайте .cmd разширение

Batch файл Command.com необходимо разширение .bat. Cmd.exe черупка да използвате .bat разширение, но в по-мощен макро език cmd.exe много отбори са несъвместими с Command.com. По този начин. бухалка файл, написан за cmd.exe, може да се провали, ако потребителят се опитва да го изпълни в Command.com (като Windows 98). Един от начините да се избегне този проблем е да се използва .cmd разширение за сценария. Защото Command.com не разпознава разширението на .cmd, той просто няма да изпълни файла партида, ако името завършва с .cmd.

Уверете се, че на разположение необходимите двоичните файлове

Ако вашият скрипт използва програмата, които не са част от стандартната инсталация на операционната система, трябва да се уверите, че всички тези програми са на разположение. Също така трябва да се документират тези зависимости във вашите скриптове. Аз предлагам да се гарантира наличието на изпълними файлове, за да ги сложи в същата директория със сценария. След това, синтаксисът се използва, за да ги изпълните

където exename - е името на изпълнимия файл, който искате да се изпълнява. синтаксис%

dp0 връща с кола, пътя и името на файла на текущия скрипт без кавички. Сключването на целия низ в кавички гарантира наличността сценарий, дори ако името на файла или директорията, в която сценарият съдържа кавички.

Правилното използване двойни кавички

Изглежда, че двойните кавички ( ") са чест източник на объркване за тези, които пишат скриптове. Двойни кавички - това е просто начин да се идентифицират с пространства в командния ред аргументи. Например, точно на пръв поглед командния ред

реж C: Program Files

всъщност той дава на екипа Dir два аргумента: C: Program Files и. За да се реализира намерението си да премине аргумент команда, за да C: Program Files (включително интервалите), ние трябва да се загради двойни кавички:

реж «C: Program Files»

кавичките не са част от името на папката. Те съобщават, командата Dir, текстът между тях е един аргумент.

Сценарии за командния процесор поддържа също командния ред параметри. За да използвате командния ред параметри на сценария, трябва да се даде възможност за запис% п (където п - число от 0 до 9). Този запис се нарича сурогатното параметър (или параметър). За пример, скриптът ще замени% 1 първия команден ред аргумент% 2 - вторият аргумент, и т.н. В допълнение към параметрите от% от 1 до% 9% 0 се заменя с името на скрипта,% * заменя целия команден скрипт низ (с изключение на името на скрипта.). , Споменавам тук опции за командния ред, защото, когато Cmd.exe замества настройки от 1% на аргументи, съответстваща на командния ред 9%, то оставя двойните кавички, ако те са в аргумента. Изводът: опцията скрипт винаги ще бъдат затворени в кавички, ако съдържа интервали. Това наблюдение се основава на няколко прости правила, следвайте внимателно, че можете да почти напълно елиминира проблема с кавички.

  • Да не се използва вътре цитира параметри сценарий (от 1% до 9%), тъй като те могат да включват кавички. Ако искате да използвате параметър Ако отборът, използвайте символи, различни от цитати (например скоби), за да се избегне синтактична грешка. Следващият ред ще работи правилно, дори ако първият аргумент (% 1) съдържа цитати:

Изключение от това правило е, когато ние използваме синтаксиса%

п, за да се отстранят кавички параметър (вж. следното правило).

  • Не слагайте кавички вътре променлива на средата. Пропуски в околната среда променливи е разрешено, и цитати не е необходимо. Ако искате да копирате на параметъра в променлива, използвайте синтаксис%

п (където п - номер от 1 до 9), което връща параметър без кавички. Например, низът

1
ще копира първия параметър на скрипта (без кавичките) в променливата файл от данни. Изключение е случаят, когато създавате текст в кавички, които ще бъдат прехвърлени към друг отбор.

  • Не забравяйте, когато имате нужда от него, да се сложи на околната среда променливи в кавички. Да вземем например следния ред в скрипта:

    Първият от тези редове копия втория аргумент в променлива са насочени към скрипт, без кавички. Втората линия е синтактично правилни, тъй като параметър% 1 вече е ограден в кавички, ако съдържа интервали, и трябва да бъде цитиран променливата на TARGET, тъй като тя може да съдържа интервали.

    Използвайте Setlocal и Endlocal отбор

    Setlocal командни копия на всички променливи и Endlocal команда възстановява всички променливи с ценностите, които те са имали преди изпълнението на скрипта. Endlocal също така премахва всички променливи, създадени от сценария. Използването на двата отбора прави сценария по-независима и гарантира, че сценарият "почиства след боклук", като възстановява променливи на обкръжението към първоначалните им стойности и премахване на променливи, за да се създаде скрипт.

    Можете също така да използвате командата Setlocal Enableextensions, да се знае точно това, което са включени, че екипите от разширение. Разширителни отбори - е да се подобри вътрешните групови команди Cmd.exe (например, ако,, Call), който предоставя допълнителни функции в сравнение с екипите Command.com, които имат същите имена. Разширителни екипи са активирани по подразбиране, но в редките случаи, когато те са изключени, екип Setlocal Enableextensions ще осигури включването на екип за разширяване. За да получите повече информация за разширена команда, въведете в командния ред в ПМС /?.

    Използвайте символ, както е необходимо Escape

    Cmd.exe използва точката на вмъкване (^) като знак за анулиране на специален смисъла на запазени черупки знаци. Например, амперсанд () е команда сепаратор - това ви позволява да поставите няколко команди на един ред. Ако възнамерявате да използвате амперсандния в нормален, буквалния смисъл на думата, тя трябва да "отмени" специалната си значение, като ги постави в предната част на точката на вмъкване ^. По този начин, в съответствие

    Ехо ^ характер е
    разделител на команда

    ^ Символ кара обвивката, за да отмените нормалното тълкуване на следващия знак за него. Специални знаци са символи () ^ |. Не е необходимо да се използва знака на отказ, ако тези символи се появяват в низа ограден в кавички.

    Не използвайте командата Exit без / B

    Без / б Exit команда затваря текущата обвивка. Ако някой пуска Cmd.exe и изпълнява скрипт, който съдържа командата Exit, текущата сесия на черупката се затваря рязко. Екип на Exit / б затваря сегашния сценарий, без затваряне на текущата сесия черупка. За да научите повече за командата Exit, въведете следната команда Exit /?.

    Използвайте командата с повишено внимание, ако Errorlevel

    Ако отбор Errorlevel проверява кода на последната команда, чието изпълнение е приключило. поведение Script зависи от резултата от проверката кода на програмата е завършена. Например, да разгледаме следната ситуация:

    Myprogram
    Ако Errorlevel 1 Гото: ГРЕШКА

    Иди на команда в тези редове ще се извършва само ако Myprogram.exe връща код на завършване е по-голяма или равна на 1. С други думи, «Ако Errorlevel н» не означава ", ако последната кода на програмата е завършена е точно равна на п»; в действителност, това условие означава "ако последната края на програмата кодът е не по-малко от п». Като се има предвид това поведение, то е необходимо да се провери кода на програмата е завършена в низходящ ред (от най-големия до най-малкия). За да проверите конкретната стойност на кода на програмата е пълна, да се използва динамична променлива вместо екип ERRORLEVEL Ако Errorlevel. Ние трябва да имаме предвид, че ако Errorlevel команда се различава от променливата ERRORLEVEL, стоейки в списъка в таблицата. 1. Ако Errorlevel команда е обратно съвместим с Ако Errorlevel команда от Command.com; ERRORLEVEL променлива е достъпна само в Cmd.exe.

    Да разгледаме характеристиките на командата Start

    Старт команда стартира програма или команда в нов прозорец на конзолата. Въпреки това, ако се опитате да стартирате програмата от папка, която съдържа пространства (или ако името на програмата съдържа интервали), Започнете поведение команда не може да отговори на вашите очаквания. Така например, следната команда:

    Започнете «C: Program FilesMicrosoft
    OfficeOffice11Winword.exe »

    Microsoft Word не работи противно на очакванията. Вместо това, отборът ще се отвори нова сесия Старт Cmd.exe, което е заглавието на прозорец на конзолата е цитиран низ. Това поведение се обяснява с факта, че Старт команда използва първия ред в кавички в команден ред като заглавие на прозорец на конзолата.

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

    Начало «» «C: Program FilesMicrosoft
    OfficeOffice11Winword.exe »

    Просто не може да предвиди

    Cmd.exe шел скриптове се използват много широко. След като овладял в тази статия препоръки, вие ще бъдете в състояние да изгради по-надеждни сценарии и да се избегне често срещани проблеми.

    Допълнителни материали на скриптове в онлайн-достъп онлайн Windows IT Pro / RE

    Най-мощна и гъвкава технология, като никой от скриптов език за Windows PowerShell (предишното име - Монада) - инструмент за управление на Windows Server, издаден от Microsoft, тъй като появата на VBScript. PowerShell

    Един пример от реалния живот Докато Microsoft е зает насърчаване на Windows PowerShell, следващото поколение скриптов език за Windows, системни и мрежови администратори и ИТ мениджъри са по-фокусирани върху изпълнението на тока

    Последните пропуски в способностите на Windows административен процес на скриптове в Windows отдавна е обект на подигравки от страна на UNIX администратори. Основната причина е фактът, че Windows не е набор от функции, които биха могли да бъдат.

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

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