Реклама
Кључни први корак програмирање учења ради са петљима Апсолутне основе програмирања за почетнике (други део)У другом делу нашег апсолутног водича за почетнике програмирања, покрићу основе функција, повратне вредности, петље и услов. Обавезно прочитајте први део пре него што се позабавите овим, где сам објаснио ... Опширније . Срећом, ПоверСхелл наставља да расте са вашим вештинама.
Можете уоквирити постојеће команде које свакодневно користите унутар петљи како бисте уштедјели време и труд. Ваше скрипте се тешко подижу док ви радите важан посао читања више чланака о МакеУсеОф-у!
Поверсхелл ФорЕацх петље: врата за напредније руковање подацима
ФорЕацх је алиас за ФорЕацх-објект. (Алиас је само пречица за наредбу у ПоверСхеллу.) Ово је право време да разговарамо о начину на који ПоверСхелл обрађује податке.
Као и већина модерних програмских језика, ПоверСхелл је оријентисан ка објектима Одакле је „Објектно оријентисано“ програмирање добило своје име?Објектно оријентисан није само случајна буззворд коју чујете у програмским круговима. Постоји разлог иза имена - али шта? Придружите ми се док истражујем неке основе програмских концепата и објашњавам ... Опширније . Све у ПоверСхелл-у је објект, што значи чак и променљиве имају проширена својства и функције Поверсхелл Цмдлетс који ће побољшати ваше Виндовс Админ СкиллсПоверсхелл је алат за командну линију једнаких делова и језик скрипта. Омогућава вам аутоматизацију рачунара помоћу истих команди које користите за његово управљање. Опширније . То својство је разлог зашто можете поставити претрагу на променљиву и завршити са низом резултата.
$ иоурВар = Гет-ЦхилдИтем * фореацх ($ датотека у $ иоурВар) {Иоур Степс. }
У неким језицима обрада овог низа био би поступак с више корака. Прво, узимајући дужину, а затим бројати сваки корак.
У ПоверСхелл-у пређете кроз низ и изводите акције на сваком од њих користећи ФорЕацх. Ово вам штеди неколико линија кода, што је корисно ако имате дуже скрипте. На пример, у наставку је мала скрипта која би користила неколико снага Поверсхелл ФорЕацх. Ствара ЗИП архиву свих датотека које нисте отворили у року од 30 дана.
Изградња система за архивирање датотека користећи петље ФорЕацх
Прекинујмо кораке доле. Користите Гет-ЦхилдИтем да бисте добили све датотеке у фасцикли Доцументс. Променљива околина Шта су променљиве околине и како их могу користити? [Виндовс]С времена на вријеме научит ћу мали савјет због којег ћу размишљати "добро, да сам то знао прије годину дана, то би ми уштедјело сате времена". Живо се сећам како учим како да ... Опширније $ енв: УСЕРПРОФИЛЕ покреће скрипту користећи тренутни профил. Ова варијабла је преносивија од пута који је тврдо кодиран. Резултати те претраге се додељују променљивој $ МиДоцс. Затим креирамо нашу ФорЕацх петљу тако што ћемо је проћи кроз сваку $ Доц у $ МиДоцс.
$ олдДоцс = @ () $ МиДоцс = Гет-ЦхилдИтем -Патх "$ ($ енв: УСЕРПРОФИЛЕ) \ Доцументс" -Рецурсе. фореацх ($ доц у $ МиДоцс) {иф ($ доц. ЛастАццессТиме -лт $ (датум-датум) .аддДаис (-30)) {$ олдДоцс + = $ доц} } $ АрцхивеФолдер = Нев-Итем-Пут "$ ($ енв: УСЕРПРОФИЛЕ) \ Доцументс \ $ ((Гет-Дате -Формат ММддии) .тоСтринг ())" -ИтемТипе Дирецтори. фореацх ($ доц у $ олдДоцс) {Мове-Итем -Патх $ доц. ФуллНаме -Додинација "$ ($ АрцхивеФолдер. ФуллНаме) \ $ ($ док. Име) "-Потврдите $ фалсе. } $ соурце = $ АрцхивеФолдер. Пуно име. $ таргет = "$ ($ енв: УСЕРПРОФИЛЕ) \ Документи \ $ ($ АрцхивеФолдер. Име) .зип " Адд-Типе -АссемблиНаме "систем.ио.цомпрессион.филесистем" [ио.цомпрессион.зипфиле]:: ЦреатеФромДирецтори ($ извор, $ одредиште) иф (тест-пут $ одредиште) {Ремове-Итем -Патх $ АрцхивеФолдер -Рецурсе -Цонфирм $ фалсе. }
Унутар петље проверавамо да ли је свака датотека ЛастАццессТиме имовина је старија од 30 дана. То ћемо добити са Гет-Дате цмдлет и коришћењем АддДаис функција са негативном тридесетом. Ако је, додаћемо датотеку у $ миОлдДоцс низ. Након што се врста датотеке доврши, узимамо довршени низ и креирамо зип датотеку. Овај поступак је мало сложенији јер укључује позивање мало .НЕТ-а. Не брините ако их не схватите - можете да украдете код овај документ помоћи за ТецхНет.
Да разбијемо шта се овде дешава: Пребацићемо све наше старе датотеке у нови директориј који је именован за данашњи датум старијим од 30 дана. Једном када се та мапа изгради, морамо креирати истоимени ЗИП архив. Тестираћемо да ли је архива успела и .ЗИП датотека је тамо, а затим избрисати нову фасциклу. Поставите ово као планирани задатак да се изводи једном месечно. Уштедјет ћете себи мало простора и одржавати мапу Доцументс чистом.
Док и ради док: петље о стању
Ако желите да покренете петљу само када је испуњен одређени услов, користите петљу Док. Ако користите променљиву вредност за праћење броја, прво је подесите.
и = 0. док (и <10) {Ваши кораци и + = 1. }
Проблем је у томе што, ако не користите бројач, можда бисте желели да се код покрене бар једном, чак и ако је тест тачан. То је случај са примјером скрипте у наставку. У тим случајевима, желите да користите петљу До-вхиле Како раде петље у рачунарском програмирањуПетље су један од првих типова контроле које ћете научити у програмирању. Вероватно знате за време и за петље, али шта се ради петља у току рада? Опширније . Синтакса је мало другачија.
учините {Иоур Степс. } вхиле (условна изјава)
Њихова употреба није тако очигледна почетницима програмерима. Обављајући типичне сценарије из дана у дан, можда нећете наићи на њих тако често. Тамо где су они посебно корисни, је да се направи импровизован часовник за тестирање успеха процеса.
Направит ћемо брзу скрипту за поновно покретање удаљене машине и упозорити ако се не појави у року од 15 минута. Овај сценариј претпоставља да је то кућни сервер или друга машина која се не рестартује често. Слободно прилагодите време ако се рачунар обично брже појави.
Поново покрените и проверите: Коришћењем петље До-вхиле
Ова скрипта је мало једноставнија. Прво, ти користиш Рестарт-рачунар наредба за поновно покретање удаљене машине. (Овде смо користили лажни ИП адреса за наредбе за поновно покретање. Обавезно то пребрисати са ДНС / ИП рачунара). Затим креирајте променљиву бројач, ја и подесите на 0. Затим имате До петљу са Старт-Слееп заустављањем скрипте на 300 секунди (пет минута). Друга наредба додаје једну на бројач.
Рестарт-Цомпутер -ЦомпутерНаме 127.0.0.1. и = 0. урадите {Старт-Слееп -Сецондс 300 $ и + = 1. } вхиле ((! (тест-веза 127.0.0.1-тиха)) -ор $ и -гт 3) иф ($ и -гт 3) {Врите-Оупут "Удаљена машина не одговара, проверите." } елсе {Врите-Оутпут "Поновно покретање је успело" }
Онда имамо своје критерије „Док“. Користимо тест Ор како бисмо осигурали да грешка генерише упозорење. Алтернатива је скрипта која бескрајно чека на удаљену машину. Да проверимо машину, користимо Тест-Цоннецтион цмдлет. Ради једноставности, ово је Пинг за ПоверСхелл. Додајемо параметар -Тихо што га присиљава да врати тачно или лажно, а не резултате пакета. Други део изјаве Ор проверава да ли је бројач више од три.
Након што се петља доврши, желимо да створимо излаз. То значи да морамо проверити наш шалтер. Ово је брза изјава иф / елсе. Ако је већа од три, скрипта приказује да удаљена машина не реагује. Ако није, произлази да је поновно покретање било успешно.
Остале петље
У ПоверСхелл-у постоје две друге врсте петљи. Они су донекле повезани са претходне две петље, једноставно се не користе тако често. А Фор петља делује слично као на примјеру вхиле. У евалуацији постављате све своје критеријуме, а затим постављате своје цмдлете.
за ($ и = 0; $ и -лт 10; $ и ++) {Ваши кораци. }
До док петље нису као петље До вхиле, само промените ставку вхиле у „До“. У примјеру сценарија било би исто што и у понашању. То је избор стила, али До док је свестранији у другим ситуацијама. Дакле, ако се сећате само једног, До Док је кориснији.
ПоверСхелл такође има помоћ за сваку од ових петљи. Помоћ можете добити тако што ћете додати О томе пре имена петље у Гет-Хелп-у. Затим можете видети примере и друге савете за сваку врсту. Ово би вам требало бити од помоћи ако се заглавите.
Настављајући раст са вама
У овом тренутку имате већину вештина да почнете да правите робусне скрипте. Да ли је аутоматизовати кућну опрему 15 Напредни задаци ПоверСхелл се може носити у оперативном систему Виндовс 10ПоверСхелл је сличан командном реду, али бољи. То је моћан алат за администрацију система. Саставили смо 15 задатака, неколико једноставних, сложених, који имају користи од магије ПоверСхелл-а. Опширније или штедите време на послу, петље помажу вашим скриптама да ураде више. Комбиновање ових петљи са руковање грешкама помера ваш сценариј изван основа Помоћу ових савета бавите се грешкама ПоверСхелл-а као шефПоверСхелл грешка у руковању има четири дела. Научите како да поправите ако грешке и више у програму Мицрософт ПоверСхелл. Опширније . Ово отвара врата напреднијим језицима.
Шта је паметна скрипта ПоверСхелл коју сте креирали помоћу петљи? Поделите то са нама у коментарима.
Мицхаел није користио Мац када су били осуђени, али може да кодира у Апплесцрипт. Дипломирао је информатику и енглески језик; већ неко време пише о Мацу, иОС-у и видео играма; а он је свакодневни ИТ мајмун више од деценије, специјализован за сценаристе и виртуализацију.