A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl
Ebben az S zónában Victor megtanítja, hogyan használhatja a PowerShellt a fájl létezésének ellenőrzésére. Az útmutató több példát is tartalmaz a PowerShell használatával a fájl létezésének ellenőrzésére.
Ahhoz, hogy a PowerShell segítségével ellenőrizze, hogy létezik-e fájl, használja a Teszt-útvonal Cmdlet. A fájl elérési útját azonban közvetlenül megadhatja a Teszt-útvonal parancsot, vagy mentse el a fájlt egy változóba. Ezután használja az in változót Teszt-útvonal .
Böngésszen a bejegyzések témái között
- A PowerShell használata annak ellenőrzésére, hogy létezik-e egy fájl változó nélkül
- A PowerShell használata annak ellenőrzésére, hogy létezik-e változót tartalmazó fájl
- A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl, és másolja azt
- A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl, és törölheti azt
- A PowerShell használata annak ellenőrzésére, hogy létezik-e más fájl
- A PowerShell használata annak ellenőrzésére, hogy létezik-e egy fájl, és nincs-e üres
- A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl egy mappában
- A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl egy távoli számítógépen
- Hivatkozások és további olvasmányok
A PowerShell használata annak ellenőrzésére, hogy létezik-e egy fájl változó nélkül
Ez a szakasz megtanítja, hogyan kell futni Teszt-útvonal parancs változó nélkül.
A Test-Path futtatható önálló parancsként. Ezenkívül a parancsot kombinálhatja egy HA nyilatkozata további feladatok elvégzésére az eredménye alapján a Teszt-útvonal parancs.
A tesztútvonal közvetlen futtatása változó nélkül
Ez az alszakasz megtanítja Önnek, hogyan futtassa a tesztútvonalat egyedül (anélkül, hogy az eredményt egy HA nyilatkozat).
Van egy process.txt nevű fájlom az E: eportsban.
A fájl létezésének ellenőrzéséhez írja be az alábbi parancsot a PowerShellben, és nyomja meg az enter billentyűt
|_+_|
Amikor megnyomtam, a PowerShell visszatért Igaz , ami azt jelenti, hogy a fájl létezik.
Ha azonban ugyanazt a parancsot futtatom egy nem létező fájlhoz, a PowerShell visszatér Hamis .
Hogyan lehet kombinálni a tesztútvonalat és az IF utasítást változó nélkül
Ahogy korábban említettem, miután a PowerShell Test-Path segítségével ellenőrizte, hogy létezik-e fájl, az eredményt felhasználhatja egy HA nyilatkozat kiegészítési feladatok elvégzésére.
Ebben a példában ellenőrizni fogom, hogy létezik-e az E: eportsprocesses.txt fájl, és ha létezik, átmásolom a fájlt a C: eports mappába. Itt van a forgatókönyv, amely elvégzi a munkát.
Javasoljuk ennek a parancsnak a futtatását PowerShell ISE |_+_|Íme az eredmény a PowerShell ISE-ben és a C: eports mappába másolt fájl
Két további sor hozzáadásával okosabbá tehetem a szkriptet.
|_+_|és….
|_+_| A fenti első parancs üzenetet jelenít meg, ha a fájl másolásra került. A második egy üzenetet jelenít meg, amely szerint a fájl nem létezik.Íme a módosított szkript…
|_+_|
A PowerShell használata annak ellenőrzésére, hogy létezik-e változót tartalmazó fájl
Az utolsó részben megmutattam, hogyan használhatja a PowerShellt annak ellenőrzésére, hogy létezik-e egy fájl változók használata nélkül. Ebben a részben elmentem a Test-Path eredményét egy változóba. Ezután használja az an változót HA nyilatkozat.
Ebben a szakaszban a példában szeretném ellenőrizni, hogy első-fájl.txt az alábbi képen látható útvonalon létezik. Aztán ha létezik, átmásolom a fájlt a C:PS-be
Az első lépésekben az alábbi parancsot futtatom:
|_+_|Ez a parancs megegyezik az előzővel, egy eltéréssel – a parancs eredménye a A fájl létezik változó.
A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl, és másolja azt
Amikor bemutattam ezt a részt, elmentettem a kimenetét Teszt-útvonal parancsot a A fájl létezik változó.
|_+_|Ebben az alfejezetben megtanítom, hogyan kell másolni a fájlt, ha létezik. Ennek érdekében bemutatom a HA nyilatkozatot a Másolás-elem parancs.
|_+_|Íme a teljes szkript a kombinált parancsokkal:
|_+_|És itt van a szkript a PowerShell ISE-ben.
A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl, és törölheti azt
Az utolsó alszakaszban láthatta, hogyan ellenőrizheti, hogy létezik-e egy fájl, és hogyan másolja a fájlt. Mi van, ha inkább másolni szeretné a fájlt?
Ha másolás helyett törölni szeretné a fájlt, cserélje ki a Másolás-elem parancsot a Elem eltávolítása parancs.
a hívó azonosítója nem működik samsung s8
Itt található a frissített szkript, amely a PowerShell IF utasítást használja a fájl létezésének ellenőrzésére. Aztán ha létezik, töröld…
|_+_|A PowerShell használata annak ellenőrzésére, hogy létezik-e más fájl
Egyes PowerShell-szkriptelési helyzetekben érdemes ellenőrizni, hogy létezik-e fájl. Ezután, ha létezik, hajtson végre egy meghatározott feladatot – például másolja vagy törölje a fájlt – ellenkező esetben lépjen ki a szkriptből.
Ennek eléréséhez nem kell mást tennie, mint hozzáadni a Más blokkja a Ha nyilatkozat.
Az utolsó alszakaszban ezzel a szkripttel töröltem egy fájlt, ha létezik.
|_+_|Ha azt akarom, hogy a szkript kilépjen, ha a fájl nem létezik, módosítom a szkriptet az alábbiak szerint…
|_+_|Íme a módosított szkript logikája…
Ellenőrizze, hogy létezik-e az E: eportsfirst-file.txt fájl. Ha létezik, törölje a fájlt.
Ha azonban a fájl nem létezik, futtassa a parancsot a Más blokkja a Ha nyilatkozat. Ebben az esetben a parancs a Más hurok a szó, Szünet .
Szünet utasítja a PowerShell-t, hogy állítsa le a szkript feldolgozását. Azt is hozzáadhatja Szünet az utasítás If blokkjában – az Elem eltávolítása parancs alatt…
|_+_|A PowerShell használata annak ellenőrzésére, hogy létezik-e egy fájl, és nincs-e üres
Ez a PowerShell-parancsfájlok egy másik gyakori feltétele – annak ellenőrzése, hogy létezik-e egy fájl, és nem üres-e. Ez alkalmazható lehet a naplófájlokra.
Például, ha van egy olyan alkalmazása, amely naplófájlokat hoz létre és frissít, akkor írhat egy PowerShell-szkriptet, amely ellenőrzi, hogy az új naplófájlok frissülnek-e.
Továbblépve, hogy tesztelje, létezik-e fájl, használja a Teszt-útvonal parancs. Azonban annak ellenőrzéséhez, hogy a fájl üres-e, be kell vezetnie egy másik parancsot, Get-ChildItem .
Ebben a forgatókönyvben használhatja a Get-ChildItem parancsot kétféleképpen.
egy , ha ellenőrizni szeretné, hogy egy fájl üres-e, futtassa Get-ChildItem parancsot, a teljes fájl elérési utat használva a Pálya paraméter. kettő , vagy ha egy csomó fájlt szeretne ellenőrizni egy mappában, használja a mappa elérési útját a Pálya paraméter.
Ebben a részben adok egy példát, amely ellenőrzi, hogy egy adott fájl létezik-e és üres-e. A második lehetőséggel foglalkozom a A PowerShell használata annak ellenőrzésére, hogy egy fájl létezik-e mappa részben ebben az útmutatóban.
Ebben a példában azt szeretném ellenőrizni, hogy a fájl, első-fájl.txt és ha üres.
Mint korábban említettem, az első lépés a Get-ChildItem parancsot, a teljes fájl elérési utat használva a Pálya paraméter. A kezdéshez futtassa az alábbi parancsot…
|_+_|Íme a parancs eredménye. A parancs eredményéből látható, hogy a fájlnak van egy nevű tulajdonsága Hossz .
Hatékonyan a Hossz egy fájl tulajdonsága a fájl méretét mutatja. Továbbá, ha egy fájl üres, a Hossz nulla (0) lesz.
Tehát, hogy a PowerShell segítségével ellenőrizze, hogy a Nem üres-e, akkor ellenőrizzük, hogy a Hossz NEM nulla (0).
Ennek eléréséhez módosítom az utolsó parancsot az alábbiak szerint…
|_+_|Íme a PowerShell parancsának eredménye. Ebben az esetben, mivel a fájl mérete 0 (üres), a parancs visszatért hamis .
Ez azt jelenti, hogy ez a fájl üres.
De hogyan foglaljuk bele azt a bitet, amely teszteli, hogy a fájl létezik-e? Örülök, hogy megkérdezted!
Annak érdekében, hogy bemutassam azt a logikát, amely a PowerShell segítségével ellenőrzi, hogy létezik-e egy fájl, és azt is, hogy a fájl NEM üres-e, egyesítem az előző szkriptünk és a Get-ChildItem parancs fent.
Íme a módosított szkriptem…
|_+_|A szkriptnek ebben a módosított verziójában a következő változtatásokat végeztem el…
- A 2. sorban elmentettem a Get-ChildItem parancs, amely ellenőrzi, hogy egy fájl üres-e – egy meghívott változóban $checkiffileisempty .
- Ezután a 3. sorban hozzáadtam egy másik feltételt a Ha nyilatkozat. A feltétel része a Ha az utasítás frissítve lett If (($fileexists -eq $True) -és ($checkiffileisempty -eq $False)).
Ez a feltétel teszteli, hogy mi van-e mentve $fájl létezik van Igaz (A fájl létezik). Ezenkívül ellenőrzi, hogy mi van-e mentve $checkiffileisempt van Hamis (a fájl üres).
A PowerShell hatékonyan ellenőrzi, hogy a Teszt-útvonal parancs, amely ellenőrizte, hogy létezik-e a fájl elérési útja Igaz . Ezenkívül azt is ellenőrzi, hogy a Get-ChildItem parancs, amely ellenőrzi, hogy a fájl NEM üres-e Hamis (ami azt jelenti, hogy a fájl üres) - Végül, ha mindkét feltétel teljesül, a 4. sorban a PowerShell végrehajtja az If utasítás {} zárójelében lévő parancsot.
Ebben a példában ez a parancs az If utasítás {} zárójelében található.
A parancs hozzáadja a szöveget a Érték paramétere Set-Content parancs.
A szkript működésének teszteléséhez másolja a PowerShell ISE-be, és futtassa a szkriptet…
Miután lefuttattam a szkriptet, a fájlt, első-fájl.txt – ami korábban üres volt – most néhány érték van benne. Ezenkívül a fájl mérete már nem nulla (0)!
A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl egy mappában
Eddig ez az útmutató több forgatókönyvet ismertetett a PowerShell használatával a fájl létezésének ellenőrzésére.
Ebben a részben a mappákba szeretnék belemerülni. Pontosabban megtudhatja, hogyan ellenőrizheti, hogy létezik-e fájl az aktuális mappában vagy az összes almappában.
Ezenkívül megtudhatja, hogyan használhatja a PowerShellt annak ellenőrzésére, hogy egy fájl több mappában is megtalálható-e. Végül megmutatom, hogyan kell helyettesítő karakterrel ellenőrizni, hogy létezik-e fájl.
A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl az aktuális mappában
Ebben az első példában megtudhatja, hogyan ellenőrizheti, hogy létezik-e fájl az aktuális mappában – az összes almappát kivéve.
Ebben a példában azt szeretném ellenőrizni, hogy léteznek-e .log kiterjesztésű fájlok az E: eports mappában. Azonban ki akarok zárni minden almappát.
Az első lépés a Get-ChildItem parancs. Ezután vezesse a kimenetet ide Hol-Object és szűrjük PSIsContainer ingatlan.
A PSIsContainer A property egy olyan tulajdonság, amely mappákat vagy könyvtárakat határoz meg. Ban,-ben Hol-Object parancsot, megadtam a $_.PSIsContainer -ne $true-t. Ez a parancs egyszerűen azt mondja, hogy ne adjon vissza semmilyen elemet, ha az PSIsContainer tulajdonság Igaz. Ez csak fájlokat ad vissza.Itt a parancs…
|_+_|És itt az eredmény a PowerShellben…
Az utolsó lépés az összes .log kiterjesztésű fájl teljes elérési útjának visszaadása az aktuális mappában.
Itt a parancs…
|_+_|És az eredmény…
Ettől a ponttól kezdve, ha további feladatokat szeretne végrehajtani a fájlokon, az utolsó eredmény kimenetét a Az egyes hurok. Ezután a Az egyes ciklusban további parancsokat is futtathat.A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl az almappákban
Ha azt szeretné ellenőrizni, hogy egy adott fájl az összes almappában létezik-e, nem az aktuális mappában, akkor enyhén módosítani kell a Get-ChildItem parancs.
Pontosabban, amikor cső a Get-ChildItem parancs, be Hol-Object , szűrsz Hol-Object hogy csak mappákat adjon vissza.
|_+_|A parancs visszaadja a teljes elérési utat a megadott mappa összes almappájához…
A következő lépésben használnia kell Az egyes utasítást, hogy az utolsó parancs által visszaadott összes mappát végigjárja. Ezután a Az egyes nyilatkozat, futtasson másikat Get-ChildItem parancsot minden almappára.
Három változata létezik Az egyes de ebben a példában a Az egyes -Object Cmdlet.
|_+_|A parancs megjeleníti az összes naplófájlt az almappákban…
A PowerShell használata annak ellenőrzésére, hogy létezik-e egy fájl az aktuális mappa és az összes almappa
Az utolsó 2 alfejezetben a PSIsContainer tulajdonságot, hogy kiszűrje az almappákat, vagy csak az almappákat adja vissza. Ebben a példában kiküszöbölöm a PSIsContainer ingatlan.
Azonban bemutatom a Get-ChildItem parancs paraméter, meghívva Ismétlés . A Ismétlés paraméter erők Get-ChildItem hogy ellenőrizze a megadott mappát és annak összes almappáját.
Itt van a módosított script.
|_+_|A Ismétlés paramétert az elsőben vezetjük be Get-ChildItem parancs. A másodikban nem kötelező Get-ChildItem parancs (a ForEach-Object Blokk).
Íme a parancs eredménye. Ezúttal a jelentés tartalmazza az összes naplófájlt a felső mappában és annak összes almappájában.
A PowerShell használata annak ellenőrzésére, hogy létezik-e fájl egy távoli számítógépen
Ha azt szeretné tesztelni, hogy létezik-e fájl egy távoli számítógépen, alkalmazhatja ugyanazt az elvet, amelyet az útmutató összes példájában tárgyaltunk.
Azonban be kell vezetnie egy új parancsot, melynek neve Invoke-Command . Ezután a Invoke-Command parancsot, használja azt ScriptBlock paramétert az útmutatóban korábban tárgyalt parancsok egyikének megadásához.
Egy másik fontos dolog, amit meg kell jegyezni, hogy előfordulhat, hogy meg kell adnia egy felhasználónevet és jelszót a távoli számítógéphez való csatlakozásra jogosult fiókhoz.
Ezenkívül a megadott fióknak rendelkeznie kell engedéllyel a parancs futtatásához a ScriptBlock paraméter – a távoli számítógépen.
Végül használja a Számítógép név paramétert a távoli számítógép nevének megadásához.
Tájékoztatásul itt található a Invoke-Command parancs.
|_+_|Ha többet szeretne olvasni a Invoke-Command parancsot, lásd a Hivatkozások és további olvasmányok részt az útmutató végén.
Ha remélem sikerült megtanítanom a PowerShell használatára a fájl létezésének ellenőrzésére!
Remélem, hasznosnak találtad az S zónát is. Ha hasznosnak találtad, kérlek szavazz Igen a Volt ez a bejegyzés Hasznos kérdés alább.
Alternatív megoldásként feltehet kérdést, megjegyzést írhat vagy visszajelzést küldhet az oldal végén található Válaszoljon űrlap segítségével.
Végül, további Email tech S zónákért keresse fel a Windows PowerShell útmutató oldalát. A Munka a kezdőlapról oldalunkat is nagyon hasznosnak találhatja.
Hivatkozások és további olvasmányok
- Invoke-Command
- Powershell, ha más magyarázat: szintaxis és példák
- Get-ChildItem
- Teszt-útvonal


