Cum să utilizați PowerShell pentru a verifica dacă există un fișier

28 mai 2021 35296 Vizualizări Powershell verifica dacă fișierul există

În această zonă S, Victor vă învață cum să utilizați PowerShell pentru a verifica dacă există un fișier. Ghidul acoperă mai multe exemple de utilizare a PowerShell pentru a verifica dacă există un fișier.





Pentru a utiliza PowerShell pentru a verifica dacă există un fișier, utilizați Calea de testare Cmdlet. Cu toate acestea, puteți fie să introduceți calea fișierului direct la Calea de testare comanda sau salvați fișierul într-o variabilă. Apoi utilizați variabila în Calea de testare .



Răsfoiți subiectele postărilor

Cum să utilizați PowerShell pentru a verifica dacă un fișier există fără o variabilă

Cum să utilizați PowerShell pentru a verifica dacă un fișier există fără o variabilă

Această secțiune vă învață cum să rulați Calea de testare comandă fără variabilă.



Puteți rula Test-Path ca o comandă autonomă. Mai mult, puteți combina comanda cu un DACĂ declarație de a efectua sarcini suplimentare pe baza rezultatului Calea de testare comanda.



Cum să rulați Test-Path direct fără o variabilă

Această subsecțiune vă învață cum să rulați Test-Path singur (fără a utiliza rezultatul într-un DACĂ afirmație).

Am un fișier numit processes.txt în E: eports.



transmite jocuri nfl pe kodi
Cum să utilizați PowerShell pentru a verifica dacă există un fișier

Pentru a verifica dacă fișierul există, introduceți comanda de mai jos în PowerShell și apăsați Enter



|_+_|

Când am apăsat, PowerShell a revenit Adevărat , adică fișierul există.

Cum să utilizați PowerShell pentru a verifica dacă există un fișier

Cu toate acestea, dacă rulez aceeași comandă pentru un fișier care nu există, PowerShell revine Fals .

Cum să utilizați PowerShell pentru a verifica dacă există un fișier

Cum să combinați calea de testare și instrucțiunea IF fără o variabilă

După cum am menționat mai devreme, după ce ați folosit PowerShell Test-Path pentru a verifica dacă există un fișier, puteți utiliza rezultatul într-un DACĂ declarație pentru a efectua sarcini de completare.

În acest exemplu, voi verifica dacă E: eportsprocesses.txt există și dacă există, voi copia fișierul în C: eports. Iată scriptul care va face treaba.

Este recomandat să rulați această comandă în PowerShell ISE |_+_|

Iată rezultatul în PowerShell ISE și fișierul copiat în C: eports

Cum să utilizați PowerShell pentru a verifica dacă există un fișier

Pot face scriptul mai inteligent adăugând două linii suplimentare.

|_+_|

și….

|_+_| Prima comandă de mai sus afișează un mesaj dacă fișierul este copiat. Al doilea afișează un mesaj că fișierul nu există.

Iată scriptul modificat...

|_+_|

Cum să utilizați PowerShell pentru a verifica dacă un fișier există cu o variabilă

Cum să utilizați PowerShell pentru a verifica dacă un fișier există cu o variabilă

În ultima secțiune v-am arătat cum să utilizați PowerShell pentru a verifica dacă un fișier există fără a utiliza variabile. În această secțiune, voi salva rezultatul Test-Path într-o variabilă. Apoi, utilizați variabila într-un DACĂ afirmație.

În exemplul din această secțiune, vreau să verific dacă primul-fișier.txt există în calea prezentată în imaginea de mai jos. Apoi, dacă există, voi copia fișierul în C:PS

Cum să utilizați PowerShell pentru a verifica dacă un fișier există cu o variabilă

În primii pași, voi rula comanda de mai jos:

|_+_|

Această comandă este aceeași cu ultima cu o diferență – rezultatul comenzii este salvat în fisierul exista variabil.

Cum să utilizați PowerShell pentru a verifica dacă un fișier există cu o variabilă

Cum să utilizați PowerShell pentru a verifica dacă un fișier există și a-l copia

Când am introdus această secțiune, am salvat rezultatul Calea de testare comanda către fisierul exista variabil.

|_+_|

În această subsecțiune, vă voi învăța cum să copiați fișierul dacă acesta există. Pentru a face acest lucru, voi prezenta DACĂ declarație cu Element de copiere comanda.

|_+_|

Iată scriptul complet cu comenzile combinate:

|_+_|

Și aici este scriptul în PowerShell ISE.

Cum să utilizați PowerShell pentru a verifica dacă există un fișier și pentru a-l șterge

În ultima subsecțiune, ați văzut cum să verificați dacă există un fișier și să copiați fișierul. Ce se întâmplă dacă doriți să copiați fișierul?

Dacă doriți să ștergeți fișierul în loc să îl copiați, înlocuiți fișierul Element de copiere comanda cu Eliminați-element comanda.

Iată scriptul actualizat care utilizează declarația PowerShell IF pentru a verifica dacă există un fișier. Apoi, dacă există, șterge-l...

|_+_|

Cum să utilizați PowerShell pentru a verifica dacă există un fișier Altfel Ieșiți

În unele situații de scriptare PowerShell, poate doriți să verificați dacă există un fișier. Apoi, dacă există, efectuați o sarcină specificată - cum ar fi copierea sau ștergerea fișierului - în caz contrar, ieșiți din script.

Pentru a realiza acest lucru, tot ce trebuie să faceți este să adăugați Altfel bloc al Dacă afirmație.

În ultima subsecțiune, am folosit acest script pentru a șterge un fișier dacă există.

|_+_|

Dacă vreau ca scriptul să iasă dacă fișierul nu există, voi modifica scriptul așa cum se arată mai jos...

|_+_|

Iată logica scriptului modificat...

Verificați dacă fișierul, E: eportsfirst-file.txt există. Dacă există, ștergeți fișierul.

Cu toate acestea, dacă fișierul nu există, rulați comanda în fișierul Altfel bloc al Dacă afirmație. În acest caz, comanda din Altfel bucla este cuvântul, Pauză .

Pauză îi spune lui PowerShell să oprească procesarea scriptului. De asemenea, puteți adăuga Pauză în blocul If al declarației – sub comanda Remove-Item...

|_+_|

Cum să utilizați PowerShell pentru a verifica dacă un fișier există și nu este gol

Aceasta este încă o altă condiție comună în scripturile PowerShell - verificarea dacă un fișier există și nu este gol. Acest lucru poate fi aplicabil pentru fișierele jurnal.

De exemplu, dacă aveți o aplicație care creează și actualizează fișiere jurnal, puteți scrie un script PowerShell care verifică dacă fișierele jurnal noi sunt actualizate.

Mergând mai departe, pentru a testa dacă există un fișier, utilizați Calea de testare comanda. Cu toate acestea, pentru a verifica dacă fișierul este gol, trebuie să introduceți o altă comandă, Get-ChildItem .

În acest scenariu, puteți utiliza Get-ChildItem comandă în două moduri.

unu , dacă doriți să verificați dacă un singur fișier este gol, puteți rula Get-ChildItem comandă, folosind calea completă a fișierului ca cale parametru. Două , alternativ, dacă doriți să verificați o mulțime de fișiere dintr-un folder, utilizați calea folderului ca cale parametru.

În această secțiune, voi da un exemplu care verifică dacă un anumit fișier există și este gol. Voi acoperi a doua opțiune în Cum să utilizați PowerShell pentru a verifica dacă un fișier există într-un folder A secțiunea mai târziu în acest ghid.

În acest exemplu, vreau să verific dacă fișierul, primul-fișier.txt iar dacă este gol.

Cum să utilizați PowerShell pentru a verifica dacă un fișier există și nu este gol

După cum am menționat mai devreme, primul pas este să rulați Get-ChildItem comandă, folosind calea completă a fișierului ca cale parametru. Pentru a începe, rulați comanda de mai jos...

|_+_|

Iată rezultatul comenzii. Din rezultatul comenzii, puteți vedea că fișierul are o proprietate numită Lungime .

Efectiv, cel Lungime proprietatea unui fișier arată dimensiunea fișierului. În plus, dacă un fișier este gol, fișierul Lungime va fi zero (0).

Deci, pentru a utiliza PowerShell pentru a verifica dacă nu este gol, vom verifica dacă Lungime NU este zero (0).

Pentru a realiza acest lucru, voi modifica ultima comandă așa cum se arată mai jos...

|_+_|

Iată rezultatul comenzii din PowerShell. În acest caz, deoarece dimensiunea fișierului meu este 0 (gol), comanda a returnat fals .

Cum să utilizați PowerShell pentru a verifica dacă un fișier există și nu este gol

Aceasta înseamnă că acest fișier este gol.

Dar cum includem bitul care testează dacă fișierul există? Mă bucur că ai întrebat!

Pentru a introduce logica care folosește PowerShell pentru a verifica dacă un fișier există și, de asemenea, pentru a verifica dacă fișierul NU este gol, voi combina părți din scriptul nostru anterior și Get-ChildItem comanda de mai sus.

Iată scriptul meu modificat...

|_+_|

În această versiune modificată a scriptului, am făcut următoarele modificări...

  1. În rândul 2, am salvat Get-ChildItem comandă care verifică dacă un fișier este gol – într-o variabilă numită $checkiffileisempty .
|_+_|
  1. Apoi, în linia 3 am adăugat o altă condiție la Dacă afirmație. Partea de condiție a Dacă declarația a fost actualizată la If (($fileexists -eq $True) -și ($checkiffileisempty -eq $False)).

    Această condiție testează dacă ceea ce este salvat în $fișier există este Adevărat (fisierul exista). În plus, verifică dacă ceea ce este salvat în $checkiffileisempt este Fals (fișierul este gol).

    În mod efectiv, PowerShell verifică dacă Calea de testare comanda care a verificat dacă calea fișierului există este Adevărat . În plus, verifică și dacă Get-ChildItem comanda care verifică dacă fișierul NU este gol este Fals (înseamnă că fișierul este gol)
  2. În cele din urmă, dacă ambele condiții sunt îndeplinite, în linia 4, PowerShell va executa comanda din paranteza {} a instrucțiunii If.

    În acest exemplu, am această comandă în paranteza {} a instrucțiunii If.
|_+_|

Comanda adaugă textul în Valoare parametrul de Set-Conținut comanda.

Pentru a testa dacă scriptul funcționează, copiați-l în PowerShell ISE și rulați scriptul...

Cum să utilizați PowerShell pentru a verifica dacă un fișier există și nu este gol

Odată ce am rulat scriptul, fișierul, primul-fișier.txt – care anterior era gol – acum are câteva valori în el. În plus, dimensiunea fișierului nu mai este zero (0)!

Cum să utilizați PowerShell pentru a verifica dacă un fișier există într-un folder

Cum să utilizați PowerShell pentru a verifica dacă un fișier există într-un folder

Până acum, acest ghid a acoperit mai multe scenarii pentru a utiliza PowerShell pentru a verifica dacă există un fișier.

În această secțiune, vreau să mă afund adânc în dosare. Mai exact, veți învăța cum să verificați dacă un fișier există în folderul curent sau în toate subfolderele.

În plus, veți învăța cum să utilizați PowerShell pentru a verifica dacă un fișier există în mai multe foldere. În cele din urmă, vă voi arăta cum să utilizați un wildcard pentru a verifica dacă există un fișier.

Cum să utilizați PowerShell pentru a verifica dacă un fișier există în folderul curent

În acest prim exemplu, veți învăța cum să verificați dacă un fișier există în folderul curent - excluzând toate subfolderele.

În acest exemplu, vreau să verific dacă fișierele cu extensia de fișier .log există în folderul E: eports. Cu toate acestea, vreau să exclud toate subfolderele.

Primul pas este să rulați Get-ChildItem comanda. Apoi, conductați ieșirea către Unde-Obiect și filtrează după PSIContainer proprietate.

The PSIContainer proprietatea este o proprietate care definește foldere sau directoare. În Unde-Obiect comanda, am specificat $_.PSIsContainer -ne $true. Această comandă spune pur și simplu Nu returnați niciun articol dacă este PSIContainer proprietatea este adevărată. Aceasta va returna numai fișiere.

Iată comanda...

|_+_|

Și iată rezultatul în PowerShell...

este bootloaderul meu deblocat
Cum să utilizați PowerShell pentru a verifica dacă un fișier există în folderul curent

Pasul final este să returnați calea completă a tuturor fișierelor cu extensia .log în folderul curent.

Iată comanda...

|_+_|

Iar rezultatul…

Din acest punct, dacă doriți să efectuați sarcini suplimentare pe fișiere, puteți canaliza rezultatul ultimului rezultat în a Pentru fiecare buclă. Apoi, în cadrul Pentru fiecare buclă, puteți rula comenzi suplimentare.

Cum să utilizați PowerShell pentru a verifica dacă un fișier există în subdosare

Dacă doriți să verificați dacă un anumit fișier sau fișiere există în toate subfolderele, nu în folderul curent, trebuie să faceți mici modificări la Get-ChildItem comanda.

Mai exact, atunci când țevi Get-ChildItem comandă, în Unde-Obiect , tu filtrezi Unde-Obiect pentru a returna numai dosare.

|_+_|

Comanda returnează calea completă către toate subfolderele din folderul specificat...

În pasul următor, trebuie să utilizați Pentru fiecare instrucțiune pentru a itera prin toate folderele returnate de ultima comandă. Apoi, în cadrul Pentru fiecare declarație, rulați altul Get-ChildItem comandă împotriva fiecărui subfolder.

Există trei variante de Pentru fiecare dar, în acest exemplu, voi folosi Pentru fiecare -Cmdlet obiect.

|_+_|

Comanda afișează toate fișierele jurnal din subdirectoare...

Cum să utilizați PowerShell pentru a verifica dacă un fișier există în subdosare

Cum să utilizați PowerShell pentru a verifica dacă un fișier există folderul curent și toate subfolderele

În ultimele 2 sub-secțiuni, am folosit PSIContainer proprietatea fie pentru a filtra subfolderele, fie pentru a returna numai subfolderele. În acest exemplu, voi elimina PSIContainer proprietate.

Cu toate acestea, voi introduce un Get-ChildItem parametru de comandă, numit Recurs . The Recurs forțele parametrilor Get-ChildItem pentru a verifica folderul specificat și toate subfolderele acestuia.

Aici este scriptul modificat.

|_+_|

The Recurs parametrul este introdus în primul Get-ChildItem comanda. Nu este necesar în al doilea Get-ChildItem comanda (în cadrul Pentru fiecare-obiect bloc).

Iată rezultatul comenzii. De data aceasta, raportul include toate fișierele jurnal din folderul de sus și toate subfolderele acestuia.

Cum să utilizați PowerShell pentru a verifica dacă există un fișier pe un computer la distanță

Cum să utilizați PowerShell pentru a verifica dacă există un fișier pe un computer la distanță

Dacă doriți să testați dacă un fișier există pe un computer la distanță, puteți aplica același principiu discutat în toate exemplele din acest ghid.

Cu toate acestea, trebuie să introduceți o nouă comandă numită Invocare-Comandă . Apoi, în cadrul Invocare-Comandă comanda, folosește-o ScriptBlock parametru pentru a specifica una dintre comenzile pe care le-am discutat mai devreme în acest ghid.

Un alt lucru important de reținut este că, poate fi necesar să specificați un nume de utilizator și o parolă pentru un cont cu permisiunea de a vă conecta la computerul de la distanță.

În plus, contul specificat ar trebui să aibă permisiunea de a rula comanda în ScriptBlock parametru – pe computerul de la distanță.

În cele din urmă, utilizați Numele calculatorului parametru pentru a specifica numele computerului de la distanță.

Pentru referință, aici este sintaxa generală a Invocare-Comandă comanda.

|_+_|

Pentru a citi mai multe despre Invocare-Comandă comanda, consultați Referințe și lecturi suplimentare la sfârșitul acestui ghid.

Dacă sper că am putut să vă învăț cu succes cum să utilizați PowerShell pentru a verifica dacă există un fișier!

De asemenea, sper că ați găsit Zona S de ajutor. Dacă vi s-a părut util, vă rugăm să votați da la întrebarea A fost utilă această postare de mai jos.

Alternativ, puteți pune o întrebare, lăsa un comentariu sau oferi feedback cu formularul Lăsați un răspuns aflat la sfârșitul acestei pagini.

În cele din urmă, pentru mai multe zone S de tehnologie de e-mail, vizitați pagina noastră de instrucțiuni Windows PowerShell. De asemenea, s-ar putea să găsească foarte utilă pagina noastră Lucrarea de la pornire.

Referințe și lecturi suplimentare

  1. Invocare-Comandă
  2. Powershell Dacă altceva este explicat: Sintaxă și exemple
  3. Get-ChildItem
  4. Calea de testare