Hirdetés

Fontos első lépés a A programozás tanulása hurokkal dolgozik A programozás abszolút alapjai kezdőknek (2. rész)A programozás abszolút kezdő útmutatójának 2. részében bemutatom a funkciók alapjait, a visszatérési értékeket, a hurkokat és a feltételt. Mielőtt ezzel foglalkozna, győződjön meg arról, hogy elolvasta az 1. részt, ahol elmagyaráztam a ... Olvass tovább . Szerencsére a PowerShell tovább növekszik képességeivel.

A meglévő parancsokat, amelyeket minden nap használ, a hurkokba illesztheti, hogy időt és energiát takarítson meg. A parancsfájlok nehéz emelőket végeznek, miközben fontos munkát végeznek, és további cikkeket olvasnak a MakeUseOf-ról!

Powershell ForEach Loops: Az ajtó a fejlett adatkezeléshez

A ForEach az álnév a ForEach-Object számára. (Az álnév csupán egy parancsikó a PowerShell-ben.) Ideje beszélni arról, hogy a PowerShell hogyan kezeli az adatokat.

Mint a legtöbb modern programozási nyelv, A PowerShell objektum-orientált Hol szerezte a nevét az "objektumorientált" programozás?

instagram viewer
Az objektumorientált nem csupán véletlenszerű szószó, amelyet a programozási körökben hall. A név mögött ok van - de mi van? Csatlakozzon hozzám, mikor felfedezem a programozási koncepciók néhány alapját, és elmagyarázom ... Olvass tovább . A PowerShell-ben minden objektum, azaz akár változók is kiterjesztett tulajdonságokkal és funkciókkal rendelkeznek Powershell-füzetek, amelyek javítják a Windows rendszergazdai képességeitA Powershell egyenlő részű parancssori eszköz és szkriptnyelv. Ez lehetővé teszi a számítógép automatizálását ugyanazokkal a parancsokkal, mint a számítógép adminisztrálására. Olvass tovább . Ez a tulajdonság az, amiért állíthatja a kereséseket változóra, és végeredményként tömböt eredményezhet.

$ yourVar = Get-ChildItem * foreach ($ fájl $ yourVar-ban) {Az Ön lépései. }

Egyes nyelveken a tömb feldolgozása többlépcsős folyamat lenne. Először megkapja a hosszúságot, majd megszámolja az egyes lépéseket.

A PowerShellben lépjen át a tömbön, és a ForEach használatával mindegyikre végrehajtsa a műveletet. Ezzel több sornyi kódot takaríthat meg, ami akkor hasznos, ha hosszabb szkripttel rendelkezik. Például az alábbiakban bemutatunk egy kis szkriptet, amely néhány Powershell ForEach hurkot használna. Ez létrehoz egy ZIP-archívumot az összes olyan fájljáról, amelyet 30 nap alatt nem nyitott meg.

Fájl archívum rendszer felépítése a ForEach Loops segítségével

Lebontjuk a lépéseket. Használod Get-ChildItem hogy a fájlok a Dokumentumok mappába kerüljenek. A környezeti változó Mik a környezeti változók és hogyan használhatom őket? [Ablakok]Időnként megtanulok egy kis tippet, amely arra készteti a gondolatát, hogy "nos, ha tudtam, hogy egy évvel ezelőtt ez órákat takarított meg nekem". Nagyon emlékszem, hogy megtanultam, hogyan kell ... Olvass tovább $ env: USERPROFILE futtatja a szkriptet az aktuális profil használatával. Ez a változó hordozhatóbb, mint egy merev kódolású útvonal. A keresés eredményeit hozzá kell rendelni a változóhoz $ MyDocs. Ezután létrehozzuk a ForEach hurkot azáltal, hogy át kell lépnünk mindegyikükön $ Doc a $ MyDocs-ban.

$ oldDocs = @ () $ MyDocs = Get-ChildItem -Path "$ ($ env: USERPROFILE) \ Documents" -Fizetés. foreach ($ doc a $ MyDocs-ban) {if ($ doc. LastAccessTime -lt $ (Get-Date) .addDays (-30)) {$ oldDocs + = $ doc} } $ ArchiveFolder = Új elem -Path "$ ($ env: USERPROFILE) \ Documents \ $ ((Get-Date -Format MMddyy) .toString ())" -ItemType könyvtár. foreach ($ doc a $ oldDocs-ban) {Move-Item -Path $ doc. FullName -Destination "$ ($ ArchiveFolder. FullName) \ $ ($ doc. Név) "-A $ false megerősítése. } $ source = $ ArchiveFolder. Teljes név. $ Destination = "$ ($ env: USERPROFILE) \ Documents \ $ ($ ArchiveFolder. Név) .zip” Add-Type -AssemblyName "system.io.compression.filesystem" [io.compression.zipfile]:: CreateFromDirectory ($ source, $ rendeltetési hely) if (teszt-útvonal $ rendeltetési hely) {Elem eltávolítása -Path $ ArchiveFolder -Fizetés -Confirm $ false. }

A hurkon belül megvizsgáljuk, hogy vannak-e fájlok LastAccessTime Az ingatlan régebbi, mint 30 nap. Ezt megkapjuk a Get-Date parancsmag, és a AddDays funkció negatív harminc. Ha igen, akkor hozzáadjuk a fájlt a $ myOldDocs sor. Miután a fájlfajta befejeződött, megtesszük a kitöltött tömbünket és létrehozunk egy ZIP-fájlt. Ez a folyamat egy kicsit bonyolultabb, mivel magában foglalja egy kis .NET meghívását. Ne aggódjon, ha nem érti eléggé - ellophatja a kódot ez a TechNet súgódokumentum.

Az itt zajló események lebontása: Az összes régi fájlt áthelyezzük egy új könyvtárba, a mai dátumra, 30 napnál régebbi napra. Amint ez a mappa összeáll, létre kell hoznunk az azonos nevű ZIP archívumot. Ellenőrizzük, hogy az archívum sikeres-e, és a .ZIP fájl meg van-e, majd töröljük az új mappát. Állítsa be ezt egy havonta egyszer futtatandó ütemezett feladatként. Takarítson meg egy kis helyet magának, és tisztán tartsa a Dokumentumok mappát.

Míg és Tegye Míg: Hurok a feltételnél

Ha egy hurkot csak akkor akar futtatni, ha egy adott feltétel teljesül, akkor a Míg a hurkot használja. Ha egy változót használ a számlálás követéséhez, állítsa be először.

i = 0. míg (i <10) {Az Ön lépései i + = 1. }

A probléma az, hogy ha nem használ számlálót, akkor azt kérheti, hogy a kód legalább egyszer futtasson, még akkor is, ha a teszt igaz. Ez a helyzet az alábbi példahelyzettel. Tehát ezekben az esetekben használni akar egy Do-while hurkot Hogyan működnek a hurkok a számítógépes programozásban?A hurkok az egyik első vezérlőtípus, amelyet a programozás során megtanulnak. Valószínűleg tudod, hogy mikor és milyen hurkokról van szó, de mit tud elérni a rövid ideig tartó hurok? Olvass tovább . A szintaxis kissé eltér.

csináld {a lépéseidet. } míg (Feltételes nyilatkozat)

Ezek használata nem olyan nyilvánvaló egy kezdő programozó számára. Ha tipikus napi szkripteket hajt végre, akkor előfordulhat, hogy nem gyakran fordul elő ezekhez. Különösen akkor hasznos, ha rögtönzött időzítőt készít a folyamat sikerének tesztelésére.

Gyors szkriptet fogunk készíteni egy távoli számítógép újraindításához, és figyelmeztetni, ha az nem áll rendelkezésre 15 percen belül. Ez a forgatókönyv feltételezi, hogy otthoni szerver vagy más számítógép, amely nem indul el gyakran. Nyugodtan állítsa be az időt, ha a számítógép általában gyorsabban jelenik meg.

Indítsa újra és ellenőrizze: Használat közbeni hurok használata

Ez a szkript egy kicsit egyszerűbb. Először használja a Restart-Computer parancs a távoli számítógép újraindításához. (Itt egy dummy IP-t használtunk az újraindítási parancsokhoz, feltétlenül írja felül ezt a számítógép DNS / IP-jével). Ezután hozza létre a számláló változót, én és állítsa 0-ra. Ezután megteszi a Do hurkot az Start-Sleep funkcióval, és a szkriptet 300 másodpercre (öt percre) állítja le. Egy második parancs hozzáad egy egyet a számlálóhoz.

Restart-Computer -ComputerName 127.0.0.1. i = 0. do {Start-Sleep -Sekund 300 $ i + = 1. } míg ((! (teszt-kapcsolat 127.0.0.1 -Quiet)) -vagy $ i -gt 3) if ($ i -gt 3) {Write-Ouput "A távoli gép nem válaszol, kérjük, ellenőrizze." } else {Íráskimenet "Újraindítás sikerült" }

Akkor megvan a Míg kritériumunk. Vagy tesztet használunk annak biztosítására, hogy a hiba riasztást generáljon. Alternatív megoldásként a szkript végtelenségig vár a távoli gépen. A gép ellenőrzéséhez a Test-kapcsolat parancsmagot. Az egyszerűség kedvéért ez a Ping for PowerShell. Hozzáadjuk a paramétert -Csendes ami arra kényszeríti, hogy visszaadja az Igaz vagy Hamis helyett a csomagok eredményeit. Az Or utasítás második része ellenőrzi, hogy a számláló háromnál nagyobb-e.

Amint a hurok befejeződik, szeretnénk létrehozni a kimenetet. Ez azt jelenti, hogy ellenőriznünk kell a pultunkat. Ez egy gyors if / else állítás. Ha háromnál nagyobb, akkor a szkript kimenetet ad arra, hogy a távoli gép nem válaszol. Ha nem, akkor kiderül, hogy az újraindítás sikeres volt.

Egyéb hurkok

Két másik típusú hurok érhető el a PowerShell-ben. Ezek kissé kapcsolódnak az előző két hurokhoz, csak nem olyan gyakran használták őket. Az A For hurok hasonlóan működik, mint a Butik példa. Beállítja az összes kritériumot az értékelés során, majd beállítja a parancsmagokat.

for ($ i = 0; $ i -lt 10; $ i ++) {Az Ön lépései. }

Addig csináld, amíg a hurkok olyanok, mint a hurkok csinálása, csak módosítsa a Míg utasítást Amíg. A példafájlban ugyanaz lenne, mint a viselkedés. Stílusválasztás, ám más helyzetekben sokkal sokoldalúbb a Do Do. Tehát, ha csak egyre emlékszik, akkor a Do Míg hasznosabb.

powershell foreach hurkok

A PowerShell ezen ciklusok mindegyikéhez is segítséget nyújt. A segítséget a hozzáadásával kaphatja meg ról ről a hurok neve előtt a Get-Help-ben. Ezután példákat és egyéb tippeket tekinthet meg az egyes típusokhoz. Ezek hasznosak lehetnek, ha elakad.

Folyamatosan növekszik veled

Ezen a ponton megvan a legtöbb készsége, hogy elindítsa a robusztus szkripteket. vajon automatizálja otthoni berendezését 15 Speciális feladatok A PowerShell képes kezelni a Windows 10 rendszertA PowerShell hasonló a parancssorhoz, de jobb. Ez egy hatékony rendszergazdai eszköz. Összeállítottuk 15 feladatot, néhány egyszerűt, néhány összetett feladatot, amelyek a PowerShell varázslatából származnak. Olvass tovább vagy ha időt takarít meg a munkahelyen, a hurkok segítenek a szkripteknél többet megtenni. Ezeknek a hurkoknak a kombinálása a hibakezelés a szkript alapjain túlmutat A PowerShell hibákat úgy kezelje, mint egy főnök ezekkel a tippekkelA PowerShell hibakezelés négy részből áll. Tudja meg, hogyan javíthatja meg a hibákat és így tovább a Microsoft PowerShell programban. Olvass tovább . Ez megnyitja az ajtót a fejlettebb nyelvek számára.

Mi egy okos PowerShell-szkript, amelyet hurkok segítségével hozott létre? Oszd meg velünk a megjegyzésekben.

Michael nem használta a Mac-ot, amikor ítélve voltak, de kódolni tudja az Applescript-ben. Számítógépes és angol tudományos fokozattal rendelkezik; már egy ideje ír Macról, iOS-ről és videojátékokról; és több mint egy évtizede nappali informatikai majom, szkriptek készítésére és virtualizálására szakosodott.