Ako používať PowerShell na kontrolu, či súbor existuje
V tejto zóne S vás Victor naučí, ako používať PowerShell na kontrolu, či súbor existuje. Sprievodca obsahuje niekoľko príkladov použitia prostredia PowerShell na kontrolu, či súbor existuje.
Ak chcete pomocou prostredia PowerShell skontrolovať, či súbor existuje, použite Test-Path Cmdlet. Môžete však zadať cestu k súboru priamo do Test-Path príkaz alebo uložte súbor do premennej. Potom použite premennú in Test-Path .
Prehľadávať témy príspevkov
- Ako používať PowerShell na kontrolu, či súbor existuje bez premennej
- Ako používať PowerShell na kontrolu, či súbor existuje s premennou
- Ako používať PowerShell na kontrolu, či súbor existuje v priečinku
- Ako používať PowerShell na kontrolu, či súbor existuje vo vzdialenom počítači
- Referencie a ďalšie čítanie
Ako používať PowerShell na kontrolu, či súbor existuje bez premennej
Táto sekcia vás naučí, ako behať Test-Path príkaz bez premennej.
Test-Path môžete spustiť ako samostatný príkaz. Okrem toho môžete príkaz skombinovať aj s AK vyhlásenie vykonať ďalšie úlohy na základe výsledku Test-Path príkaz.
Ako spustiť testovaciu cestu priamo bez premennej
Táto podsekcia vás naučí, ako spustiť Test-Path samostatne (bez použitia výsledku v súbore AK vyhlásenie).
V E: eports mám súbor s názvom processs.txt.
Ak chcete skontrolovať, či súbor existuje, zadajte príkaz uvedený nižšie v prostredí PowerShell a stlačte kláves enter
|_+_|
Keď som stlačil, PowerShell sa vrátil Pravda , čo znamená, že súbor existuje.
Ak však spustím rovnaký príkaz pre súbor, ktorý neexistuje, PowerShell sa vráti Nepravdivé .
Ako skombinovať testovaciu cestu a vyhlásenie IF bez premennej
Ako som už spomenul, po použití PowerShell Test-Path na kontrolu, či súbor existuje, môžete výsledok použiť v AK príkaz na vykonávanie doplnkových úloh.
ako zmeniť usporiadanie fotografií vo facebookovom albume
V tomto príklade skontrolujem, či E: eportsprocesses.txt existuje a ak existuje, skopírujem súbor do C: eports. Tu je skript, ktorý túto prácu vykoná.
Tento príkaz sa odporúča spustiť v PowerShell ISE |_+_|Tu je výsledok v PowerShell ISE a súbor skopírovaný do C: eports
Môžem urobiť skript inteligentnejším pridaním dvoch ďalších riadkov.
|_+_|a….
|_+_| Prvý príkaz vyššie zobrazí správu, ak je súbor skopírovaný. Druhý zobrazí správu, že súbor neexistuje.Tu je upravený skript…
|_+_|
Ako používať PowerShell na kontrolu, či súbor existuje s premennou
V poslednej časti som vám ukázal, ako používať PowerShell na kontrolu, či súbor existuje bez použitia premenných. V tejto časti uložím výsledok Test-Path do premennej. Potom použite premennú v an AK vyhlásenie.
V príklade v tejto časti chcem skontrolovať, či first-file.txt existuje v ceste zobrazenej na obrázku nižšie. Potom, ak existuje, skopírujem súbor do C:PS
V prvých krokoch spustím príkaz nižšie:
|_+_|Tento príkaz je rovnaký ako posledný s jedným rozdielom – výsledok príkazu sa uloží do súbor existuje premenlivý.
Ako používať PowerShell na kontrolu, či súbor existuje a skopírujte ho
Keď som zaviedol túto sekciu, uložil som výstup súboru Test-Path príkaz na súbor existuje premenlivý.
|_+_|V tejto podsekcii vás naučím, ako skopírovať súbor, ak existuje. Za týmto účelom vám predstavím AK vyhlásenie s Copy-Item príkaz.
|_+_|Tu je úplný skript s kombinovanými príkazmi:
|_+_|A tu je skript v PowerShell ISE.
Ako používať PowerShell na kontrolu, či súbor existuje, a na jeho odstránenie
V poslednej podsekcii ste videli, ako skontrolovať, či súbor existuje, a skopírovať ho. Čo ak chcete namiesto toho skopírovať súbor?
Ak chcete súbor namiesto kopírovania odstrániť, nahraďte ho Copy-Item príkaz s Odstrániť položku príkaz.
Tu je aktualizovaný skript, ktorý používa príkaz PowerShell IF na kontrolu, či súbor existuje. Potom, ak existuje, odstráňte ho...
|_+_|Ako používať PowerShell na kontrolu, či súbor existuje, inak ukončite
V niektorých situáciách skriptovania PowerShell možno budete chcieť skontrolovať, či súbor existuje. Potom, ak existuje, vykonajte zadanú úlohu – napríklad skopírujte alebo odstráňte súbor – v opačnom prípade skript ukončite.
Aby ste to dosiahli, všetko, čo musíte urobiť, je pridať Inak blok z Ak vyhlásenie.
V poslednej podsekcii som použil tento skript na odstránenie súboru, ak existuje.
|_+_|Ak chcem, aby sa skript ukončil, ak súbor neexistuje, upravím skript, ako je uvedené nižšie…
|_+_|Tu je logika upraveného skriptu...
Skontrolujte, či súbor E: eportsfirst-file.txt existuje. Ak existuje, odstráňte súbor.
Ak však súbor neexistuje, spustite príkaz v Inak blok z Ak vyhlásenie. V tomto prípade príkaz v Inak slučka je slovo, Prestávka .
Prestávka povie PowerShellu, aby zastavil spracovanie skriptu. Môžete tiež pridať Prestávka v bloku If príkazu – pod príkazom Remove-Item...
|_+_|Ako používať PowerShell na kontrolu, či súbor existuje a nie je prázdny
Toto je ďalšia podmienka bežná v skriptovaní PowerShell – kontrola, či súbor existuje a nie je prázdny. To môže platiť pre protokolové súbory.
Ak máte napríklad aplikáciu, ktorá vytvára a aktualizuje súbory denníka, môžete napísať skript PowerShell, ktorý skontroluje, či sú aktualizované nové súbory denníka.
Ak chcete otestovať, či súbor existuje, použite Test-Path príkaz. Ak však chcete skontrolovať, či je súbor prázdny, musíte zadať ďalší príkaz, Get-ChildItem .
V tomto scenári môžete použiť Get-ChildItem príkaz dvoma spôsobmi.
jeden , ak chcete skontrolovať, či je jeden súbor prázdny, môžete spustiť Get-ChildItem príkaz s použitím celej cesty k súboru ako Cesta parameter. dva , prípadne, ak chcete skontrolovať veľa súborov v priečinku, použite cestu priečinka ako Cesta parameter.
V tejto časti uvediem príklad, ktorý skontroluje, či konkrétny súbor existuje a je prázdny. Budem pokrývať druhú možnosť v Ako používať PowerShell na kontrolu, či súbor existuje priečinok A časti ďalej v tejto príručke.
V tomto príklade chcem skontrolovať, či súbor, first-file.txt a ak je prázdny.
Ako som už spomenul, prvým krokom je spustenie Get-ChildItem príkaz s použitím celej cesty k súboru ako Cesta parameter. Ak chcete začať, spustite príkaz nižšie…
|_+_|Tu je výsledok príkazu. Z výsledku príkazu môžete vidieť, že súbor má vlastnosť tzv Dĺžka .
Účinne, Dĺžka vlastnosť súboru zobrazuje veľkosť súboru. Okrem toho, ak je súbor prázdny, Dĺžka bude nula (0).
Ak teda chcete použiť PowerShell na kontrolu, či nie je prázdne, skontrolujeme, či je Dĺžka NIE JE nula (0).
Aby som to dosiahol, upravím posledný príkaz, ako je uvedené nižšie…
|_+_|Tu je výsledok príkazu v PowerShell. V tomto prípade, pretože veľkosť môjho súboru je 0 (prázdny), príkaz sa vrátil falošné .
To znamená, že tento súbor je prázdny.
Ako však zahrnieme bit, ktorý testuje, či súbor existuje? Som rád, že si sa opýtal!
Na predstavenie logiky, ktorá používa PowerShell na kontrolu, či súbor existuje, a tiež na kontrolu, či súbor NIE JE prázdny, skombinujem časti nášho predchádzajúceho skriptu a Get-ChildItem príkaz vyššie.
Tu je môj upravený skript...
|_+_|V tejto upravenej verzii skriptu som urobil nasledujúce zmeny...
- V riadku 2 som uložil Get-ChildItem príkaz, ktorý skontroluje, či je súbor prázdny – v premennej tzv $checkiffileisempty .
- Potom som v riadku 3 pridal ďalšiu podmienku Ak vyhlásenie. Stavová časť Ak príkaz bol aktualizovaný na If (($fileexists -eq $True) -and ($checkiffileisempty -eq $False)).
Táto podmienka testuje, či to, čo je uložené v $fileexists je Pravda (súbor existuje). Okrem toho kontroluje, či je to, čo je uložené v $checkiffileisempt je Nepravdivé (súbor je prázdny).
PowerShell efektívne skontroluje, či Test-Path príkaz, ktorý skontroluje, či cesta k súboru existuje Pravda . Okrem toho tiež kontroluje, či Get-ChildItem je príkaz, ktorý kontroluje, či súbor NIE JE prázdny Nepravdivé (čo znamená, že súbor je prázdny) - Nakoniec, ak sú splnené obe podmienky, v riadku 4 PowerShell vykoná príkaz v zátvorke {} príkazu If.
V tomto príklade mám tento príkaz v zátvorke {} príkazu If.
Príkaz pridá text do Hodnota parametrom Set-Content príkaz.
Ak chcete otestovať, či skript funguje, skopírujte ho do PowerShell ISE a spustite skript...
Keď som spustil skript, súbor, first-file.txt – ktorý bol predtým prázdny – teraz obsahuje nejaké hodnoty. Okrem toho veľkosť súboru už nie je nula (0)!
Ako používať PowerShell na kontrolu, či súbor existuje v priečinku
Táto príručka zatiaľ pokryla viacero scenárov použitia PowerShell na kontrolu, či súbor existuje.
V tejto časti sa chcem ponoriť hlboko do priečinkov. Konkrétne sa dozviete, ako skontrolovať, či súbor existuje v aktuálnom priečinku alebo vo všetkých podpriečinkoch.
8 bitová tvorivá hudba
Okrem toho sa naučíte používať PowerShell na kontrolu, či súbor existuje vo viacerých priečinkoch. Nakoniec vám ukážem, ako použiť zástupný znak na kontrolu, či súbor existuje.
Ako používať PowerShell na kontrolu, či súbor existuje v aktuálnom priečinku
V tomto prvom príklade sa naučíte, ako skontrolovať, či súbor existuje v aktuálnom priečinku – s výnimkou všetkých podpriečinkov.
V tomto príklade chcem skontrolovať, či v priečinku E: eports existujú súbory s príponou .log. Chcem však vylúčiť všetky podpriečinky.
Prvým krokom je spustenie Get-ChildItem príkaz. Potom pripojte výstup do Kde-Objekt a filtrovať podľa PSIsContainer nehnuteľnosť.
The PSIsContainer property je vlastnosť, ktorá definuje priečinky alebo adresáre. V Kde-Objekt zadal som $_.PSIsContainer -ne $true. Tento príkaz jednoducho hovorí Nevracať žiadnu položku, ak je PSIsContainer vlastnosť je Pravda. Tým sa vrátia iba súbory.Tu je príkaz…
|_+_|A tu je výsledok v PowerShell...
Posledným krokom je vrátenie úplnej cesty všetkých súborov s príponou .log v aktuálnom priečinku.
Tu je príkaz…
|_+_|A výsledok…
Od tohto bodu, ak chcete vykonať ďalšie úlohy so súbormi, môžete výstup posledného výsledku preniesť do a Pre každý slučka. Potom v rámci Pre každý slučke, môžete spustiť ďalšie príkazy.Ako používať PowerShell na kontrolu, či súbor existuje v podpriečinkoch
Ak chcete skontrolovať, či konkrétny súbor alebo súbory existujú vo všetkých podpriečinkoch, nie v aktuálnom priečinku, musíte v Get-ChildItem príkaz.
Konkrétne, keď dáte potrubie Get-ChildItem príkaz, do Kde-Objekt , filtrujete Kde-Objekt vrátiť iba priečinky.
|_+_|Príkaz vráti úplnú cestu ku všetkým podpriečinkom v zadanom priečinku…
V ďalšom kroku musíte použiť Pre každý iterovať cez všetky priečinky vrátené posledným príkazom. Potom v rámci Pre každý vyhlásenie, spustite ďalšie Get-ChildItem príkaz proti každému podpriečinku.
Existujú tri varianty Pre každý ale v tomto príklade použijem Pre každý -Object Cmdlet.
|_+_|Príkaz zobrazí všetky protokolové súbory v podpriečinkoch…
Ako používať PowerShell na kontrolu, či súbor existuje, aktuálny priečinok a všetky podpriečinky
V posledných 2 podkapitolách som použil PSIsContainer vlastnosť buď odfiltrovať podpriečinky, alebo vrátiť iba podpriečinky. V tomto príklade odstránim PSIsContainer nehnuteľnosť.
Predstavím však a Get-ChildItem parameter príkazu, tzv Rekurzia . The Rekurzia parametrické sily Get-ChildItem skontrolujte zadaný priečinok a všetky jeho podpriečinky.
Tu je upravený skript.
|_+_|The Rekurzia parameter je uvedený v prvom Get-ChildItem príkaz. V druhom sa to nevyžaduje Get-ChildItem príkaz (v rámci Pre každý objekt blok).
Tu je výsledok príkazu. Tentoraz prehľad obsahuje všetky protokolové súbory v hornom priečinku a všetky jeho podpriečinky.
Ako používať PowerShell na kontrolu, či súbor existuje vo vzdialenom počítači
Ak chcete otestovať, či súbor existuje na vzdialenom počítači, môžete použiť rovnaký princíp, o ktorom sa hovorí vo všetkých príkladoch v tejto príručke.
Musíte však zaviesť nový príkaz tzv Invoke-Command . Potom v rámci Invoke-Command príkaz, použite jeho ScriptBlock parameter na zadanie jedného z príkazov, o ktorých sme hovorili vyššie v tejto príručke.
Ďalšou dôležitou vecou, ktorú treba poznamenať, je, že možno budete musieť zadať meno používateľa a heslo pre účet s povolením na pripojenie k vzdialenému počítaču.
Okrem toho by zadaný účet mal mať povolenie na spustenie príkazu v ScriptBlock parameter – na vzdialenom počítači.
Nakoniec použite Názov počítača parameter na určenie názvu vzdialeného počítača.
Pre vašu informáciu uvádzame všeobecnú syntax súboru Invoke-Command príkaz.
|_+_|Ak si chcete prečítať viac o Invoke-Command pozri Referencie a ďalšie čítanie na konci tejto príručky.
root nexus 6 android 7
Ak dúfam, že som vás úspešne naučil, ako používať PowerShell na kontrolu, či súbor existuje!
Tiež dúfam, že vám pomohla zóna S. Ak vám to pomohlo, zahlasujte Áno na otázku Bol tento príspevok užitočná nižšie.
Prípadne môžete položiť otázku, zanechať komentár alebo poskytnúť spätnú väzbu pomocou formulára na zanechanie odpovede, ktorý nájdete na konci tejto stránky.
Nakoniec, ak chcete získať ďalšie e-mailové technologické zóny S, navštívte našu stránku s návodmi na prostredie Windows PowerShell. Veľmi užitočná vám môže byť aj naša stránka Práca z domovskej stránky.
Referencie a ďalšie čítanie
- Invoke-Command
- Powershell If Else Explained: Syntax a príklady
- Get-ChildItem
- Test-Path


