Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv

2021. gada 28. maijs 35296 Skati Powershell pārbaudiet, vai fails pastāv

Šajā S zonā Viktors māca, kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv. Rokasgrāmatā ir ietverti vairāki piemēri, kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv.





Lai izmantotu PowerShell, lai pārbaudītu, vai fails pastāv, izmantojiet Testa ceļš Cmdlet. Tomēr jūs varat ievadīt faila ceļu tieši uz Testa ceļš komandu vai saglabājiet failu mainīgajā. Pēc tam izmantojiet mainīgo in Testa ceļš .



Pārlūkojiet ziņu tēmas

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv bez mainīgā

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv bez mainīgā

Šajā sadaļā ir aprakstīts, kā skriet Testa ceļš komanda bez mainīgā.



Test-Path var palaist kā atsevišķu komandu. Turklāt jūs varat arī apvienot komandu ar an JA paziņojums veikt papildu uzdevumus, pamatojoties uz rezultātu Testa ceļš komandu.



Kā palaist testa ceļu tieši bez mainīgā

Šajā apakšsadaļā ir aprakstīts, kā palaist Test-Path atsevišķi (neizmantojot rezultātu an JA paziņojums, apgalvojums).

ares vedņa repo URL

Man ir fails process.txt E: eports.



Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv

Lai pārbaudītu, vai fails pastāv, programmā PowerShell ievadiet tālāk norādīto komandu un nospiediet taustiņu Enter



|_+_|

Kad es nospiedu, PowerShell atgriezās Taisnība , kas nozīmē, ka fails pastāv.

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv

Tomēr, ja es izpildu to pašu komandu failam, kas neeksistē, PowerShell atgriežas Nepatiesi .

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv

Kā apvienot testa ceļa un IF paziņojumu bez mainīgā

Kā jau minēju iepriekš, pēc PowerShell testa ceļa izmantošanas, lai pārbaudītu, vai fails pastāv, varat izmantot rezultātu JA paziņojums, lai veiktu papildinājumu uzdevumus.

Šajā piemērā es pārbaudīšu, vai fails E: eportsprocesses.txt pastāv, un, ja tas pastāv, es kopēšu failu uz C: eports. Šeit ir skripts, kas veiks darbu.

Ieteicams palaist šo komandu PowerShell ISE |_+_|

Šeit ir rezultāts programmā PowerShell ISE un fails, kas kopēts mapē C: eports

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv

Es varu padarīt skriptu gudrāku, pievienojot divas papildu rindiņas.

|_+_|

un….

|_+_| Ja fails ir kopēts, pirmā komanda parāda ziņojumu. Otrajā tiek parādīts ziņojums, ka fails neeksistē.

Šeit ir modificēts skripts…

|_+_|

Kā izmantot PowerShell, lai pārbaudītu, vai failā ir mainīgs

Kā izmantot PowerShell, lai pārbaudītu, vai failā ir mainīgs

Pēdējā sadaļā es parādīju, kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv, neizmantojot mainīgos. Šajā sadaļā es saglabāšu Test-Path rezultātu mainīgajā. Pēc tam izmantojiet mainīgo an JA paziņojums, apgalvojums.

Šīs sadaļas piemērā es vēlos pārbaudīt, vai pirmais fails.txt pastāv tālāk attēlā redzamajā ceļā. Pēc tam, ja tas pastāv, es kopēšu failu uz C:PS

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv ar mainīgo

Pirmajās darbībās es izpildīšu tālāk norādīto komandu:

|_+_|

Šī komanda ir tāda pati kā pēdējā ar vienu atšķirību – komandas rezultāts tiek saglabāts fails pastāv mainīgs.

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv ar mainīgo

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv, un kopētu to

Ieviešot šo sadaļu, es saglabāju izvadi Testa ceļš komandai fails pastāv mainīgs.

|_+_|

Šajā apakšsadaļā es jums iemācīšu, kā kopēt failu, ja tāds pastāv. Lai to izdarītu, es iepazīstināšu ar JA paziņojums ar Vienuma kopēšana komandu.

|_+_|

Šeit ir pilns skripts ar kombinētajām komandām:

|_+_|

Un šeit ir PowerShell ISE skripts.

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv, un dzēstu to

Pēdējā apakšsadaļā jūs redzējāt, kā pārbaudīt, vai fails pastāv, un kopēt failu. Ko darīt, ja vēlaties kopēt failu?

Ja vēlaties dzēst failu, nevis to kopēt, nomainiet Vienuma kopēšana komandu ar Noņemt vienumu komandu.

Šeit ir atjaunināts skripts, kas izmanto PowerShell IF paziņojumu, lai pārbaudītu, vai fails pastāv. Pēc tam, ja tas pastāv, izdzēsiet to…

|_+_|

Kā izmantot PowerShell, lai pārbaudītu, vai fails eksistē, izejiet

Dažās PowerShell skriptēšanas situācijās, iespējams, vēlēsities pārbaudīt, vai fails pastāv. Pēc tam, ja tāds pastāv, veiciet noteiktu uzdevumu, piemēram, kopējiet vai dzēsiet failu, pretējā gadījumā izejiet no skripta.

Lai to panāktu, viss, kas jums jādara, ir jāpievieno Citādi bloks Ja paziņojums, apgalvojums.

Pēdējā apakšsadaļā es izmantoju šo skriptu, lai izdzēstu failu, ja tāds pastāv.

|_+_|

Ja es vēlos, lai skripts izietu, ja fails neeksistē, es mainīšu skriptu, kā parādīts tālāk…

|_+_|

Šeit ir modificētā skripta loģika…

Pārbaudiet, vai fails E: eportsfirst-file.txt pastāv. Ja tas pastāv, izdzēsiet failu.

Tomēr, ja fails neeksistē, palaidiet komandu mapē Citādi bloks Ja paziņojums, apgalvojums. Šajā gadījumā komanda Citādi cilpa ir vārds, Pārtraukt .

Pārtraukt liek PowerShell pārtraukt skripta apstrādi. Varat arī pievienot Pārtraukt priekšraksta blokā If — zem komandas Remove-Item…

|_+_|

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv un nav tukšs

Šis ir vēl viens PowerShell skriptēšanā izplatīts nosacījums — pārbaudot, vai fails pastāv un vai tas nav tukšs. Tas var attiekties uz žurnālfailiem.

Piemēram, ja jums ir lietojumprogramma, kas izveido un atjaunina žurnālfailus, varat uzrakstīt PowerShell skriptu, kas pārbauda, ​​vai ir atjaunināti jauni žurnālfaili.

Turpinot, lai pārbaudītu, vai fails pastāv, izmantojiet Testa ceļš komandu. Tomēr, lai pārbaudītu, vai fails ir tukšs, jums jāievada cita komanda, Get-ChildItem .

gaida sūtīt snapchat

Šajā scenārijā varat izmantot Get-ChildItem komandu divos veidos.

viens , ja vēlaties pārbaudīt, vai viens fails ir tukšs, varat palaist Get-ChildItem komandu, izmantojot pilnu faila ceļu kā Ceļš parametrs. divi , kā arī, ja vēlaties pārbaudīt failu kopumu mapē, izmantojiet mapes ceļu kā Ceļš parametrs.

Šajā sadaļā es sniegšu piemēru, kas pārbauda, ​​vai konkrēts fails pastāv un ir tukšs. Es apskatīšu otro iespēju Kā izmantot PowerShell, lai pārbaudītu, vai fails ir mape sadaļu vēlāk šajā rokasgrāmatā.

Šajā piemērā es vēlos pārbaudīt, vai fails, pirmais fails.txt un ja tas ir tukšs.

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv un nav tukšs

Kā jau minēju iepriekš, pirmais solis ir palaist Get-ChildItem komandu, izmantojot pilnu faila ceļu kā Ceļš parametrs. Lai sāktu, palaidiet tālāk esošo komandu…

|_+_|

Šeit ir komandas rezultāts. Pēc komandas rezultāta var redzēt, ka failam ir rekvizīts, ko sauc Garums .

Efektīvi, Garums faila rekvizīts parāda faila lielumu. Turklāt, ja fails ir tukšs, Garums būs nulle (0).

Tātad, lai izmantotu PowerShell, lai pārbaudītu, vai nav tukšs, mēs pārbaudīsim, vai Garums NAV nulle (0).

Lai to panāktu, es mainīšu pēdējo komandu, kā parādīts zemāk…

|_+_|

Šeit ir PowerShell komandas rezultāts. Šajā gadījumā, tā kā mana faila lielums ir 0 (tukšs), komanda atgriezās viltus .

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv un nav tukšs

Tas nozīmē, ka šis fails ir tukšs.

Bet kā iekļaut bitu, kas pārbauda, ​​vai fails pastāv? Prieks, ka pajautāji!

Lai ieviestu loģiku, kas izmanto PowerShell, lai pārbaudītu, vai fails pastāv, kā arī pārbaudītu, vai fails NAV tukšs, es apvienošu mūsu iepriekšējā skripta daļas un Get-ChildItem komandu augstāk.

Šeit ir mans pārveidotais skripts…

|_+_|

Šajā modificētajā skripta versijā es veicu šādas izmaiņas…

  1. 2. rindā es saglabāju Get-ChildItem komanda, kas pārbauda, ​​vai fails ir tukšs – izsauktajā mainīgajā $checkiffileisempty .
|_+_|
  1. Pēc tam 3. rindā es pievienoju vēl vienu nosacījumu Ja paziņojums, apgalvojums. Nosacījuma daļa Ja paziņojums tika atjaunināts uz If (($fileexists -eq $True) -un ($checkiffileisempty -eq $False)).

    Šis nosacījums pārbauda, ​​vai tas, kas ir saglabāts $fails pastāv ir Taisnība (fails pastāv). Turklāt tas pārbauda, ​​vai tas, kas ir saglabāts $checkiffileisempt ir Nepatiesi (fails ir tukšs).

    Efektīvi PowerShell pārbauda, ​​vai Testa ceļš komanda, kas pārbaudīja, vai faila ceļš pastāv, ir Taisnība . Turklāt tā arī pārbauda, ​​vai Get-ChildItem komanda, kas pārbauda, ​​vai fails NAV tukšs Nepatiesi (tas nozīmē, ka fails ir tukšs)
  2. Visbeidzot, ja abi nosacījumi ir izpildīti, 4. rindā PowerShell izpildīs komandu If priekšraksta iekavās {}.

    Šajā piemērā šī komanda man ir If priekšraksta iekavās {}.
|_+_|

Komanda pievieno tekstu laukā Vērtība parametrs Komplekts-Saturs komandu.

Lai pārbaudītu, vai skripts darbojas, kopējiet to uz PowerShell ISE un palaidiet skriptu…

Kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv un nav tukšs

Kad es palaidu skriptu, failu, pirmais fails.txt – kas iepriekš bija tukšs – tagad tajā ir dažas vērtības. Turklāt faila lielums vairs nav nulle (0)!

Kā izmantot PowerShell, lai pārbaudītu, vai mapē ir fails

Kā izmantot PowerShell, lai pārbaudītu, vai mapē ir fails

Līdz šim šajā rokasgrāmatā ir apskatīti vairāki scenāriji, lai izmantotu PowerShell, lai pārbaudītu, vai fails pastāv.

Šajā sadaļā es vēlos dziļi ienirt mapēs. Konkrēti, jūs uzzināsit, kā pārbaudīt, vai fails pastāv pašreizējā mapē vai visās apakšmapēs.

Turklāt jūs uzzināsit, kā izmantot PowerShell, lai pārbaudītu, vai fails pastāv vairākās mapēs. Visbeidzot, es jums parādīšu, kā izmantot aizstājējzīmi, lai pārbaudītu, vai fails pastāv.

Kā izmantot PowerShell, lai pārbaudītu, vai pašreizējā mapē ir fails

Šajā pirmajā piemērā jūs uzzināsit, kā pārbaudīt, vai fails pastāv pašreizējā mapē, izņemot visas apakšmapes.

Šajā piemērā es vēlos pārbaudīt, vai mapē E: eports ir faili ar faila paplašinājumu .log. Tomēr es vēlos izslēgt visas apakšmapes.

Pirmais solis ir palaist Get-ChildItem komandu. Pēc tam ievadiet izvadi uz Kur-Objekts un filtrē pēc PSIsContainer īpašums.

The PSIsContainer rekvizīts ir īpašums, kas definē mapes vai direktorijus. Iekš Kur-Objekts komandu, es norādīju $_.PSIsContainer -ne $true. Šī komanda vienkārši saka Neatgriezt nevienu vienumu, ja tā ir PSIsContainer īpašums ir Patiess. Tas atgriezīs tikai failus.

Šeit ir pavēle…

|_+_|

Un šeit ir rezultāts programmā PowerShell…

Kā izmantot PowerShell, lai pārbaudītu, vai pašreizējā mapē ir fails

Pēdējais solis ir atgriezt visu pašreizējo mapē esošo failu pilnu ceļu ar paplašinājumu .log.

Šeit ir pavēle…

|_+_|

Un rezultāts…

No šī brīža, ja vēlaties veikt turpmākus uzdevumus ar failiem, varat ievadīt pēdējā rezultāta izvadi uz a Katram cilpa. Pēc tam ietvaros Katram cilpa, varat palaist papildu komandas.

Kā izmantot PowerShell, lai pārbaudītu, vai apakšmapēs ir fails

Ja vēlaties pārbaudīt, vai konkrēts fails vai faili eksistē visās apakšmapēs, nevis pašreizējā mapē, jums ir jāveic nelielas izmaiņas Get-ChildItem komandu.

Konkrēti, kad jūs caurujat Get-ChildItem komanda, iekšā Kur-Objekts , jūs filtrējat Kur-Objekts lai atgrieztu tikai mapes.

|_+_|

Komanda atgriež pilnu ceļu uz visām apakšmapēm norādītajā mapē…

Nākamajā darbībā jums ir jāizmanto Katram paziņojumu, lai atkārtotu visas pēdējās komandas atgrieztās mapes. Pēc tam ietvaros Katram paziņojums, palaist citu Get-ChildItem komandu pret katru apakšmapi.

Ir trīs varianti Katram bet šajā piemērā es izmantošu Katram -Objektu cmdlet.

atjaunot hromētās cilnes pēc avārijas
|_+_|

Komanda parāda visus žurnālfailus apakšmapēs…

Kā izmantot PowerShell, lai pārbaudītu, vai apakšmapēs ir fails

Kā izmantot PowerShell, lai pārbaudītu, vai pašreizējā mape un visas apakšmapes pastāv fails

Pēdējās 2 apakšsadaļās es izmantoju PSIsContainer rekvizītu, lai vai nu filtrētu apakšmapes, vai atgrieztu tikai apakšmapes. Šajā piemērā es novērsīšu PSIsContainer īpašums.

Tomēr es iepazīstināšu ar a Get-ChildItem komandas parametrs, izsaukts Atkārtošanās . The Atkārtošanās parametru spēki Get-ChildItem lai pārbaudītu norādīto mapi un visas tās apakšmapes.

Šeit ir modificēts skripts.

|_+_|

The Atkārtošanās parametrs ir ieviests pirmajā Get-ChildItem komandu. Otrajā gadījumā tas nav nepieciešams Get-ChildItem komanda (sadaļā Katram objektam bloķēt).

Šeit ir komandas rezultāts. Šoreiz pārskatā ir iekļauti visi žurnālfaili augšējā mapē un visās tās apakšmapēs.

Kā izmantot PowerShell, lai pārbaudītu, vai attālajā datorā ir fails

Kā izmantot PowerShell, lai pārbaudītu, vai attālajā datorā ir fails

Ja vēlaties pārbaudīt, vai fails pastāv attālajā datorā, varat izmantot to pašu principu, kas aprakstīts visos šīs rokasgrāmatas piemēros.

Tomēr jums ir jāievieš jauna komanda ar nosaukumu Invoke-Command . Pēc tam ietvaros Invoke-Command komandu, izmantojiet to ScriptBlock parametru, lai norādītu kādu no komandām, par kurām mēs runājām iepriekš šajā rokasgrāmatā.

Vēl viena svarīga lieta, kas jāņem vērā, ir tāda, ka, iespējams, būs jānorāda lietotājvārds un parole kontam, kuram ir atļauja izveidot savienojumu ar attālo datoru.

Turklāt norādītajam kontam ir jābūt atļaujai palaist komandu ScriptBlock parametrs – attālajā datorā.

Visbeidzot izmantojiet Datora nosaukums parametrs, lai norādītu attālā datora nosaukumu.

Jūsu uzziņai šeit ir vispārīgā sintakse Invoke-Command komandu.

|_+_|

Lai lasītu vairāk par Invoke-Command komandu, skatiet sadaļu Atsauces un papildu informācija šīs rokasgrāmatas beigās.

Ja ceru, ka man izdevās veiksmīgi iemācīt jums izmantot PowerShell, lai pārbaudītu, vai fails pastāv!

Es arī ceru, ka S zona jums bija noderīga. Ja jums tas šķita noderīgi, lūdzu, balsojiet uz Vai šī ziņa bija noderīgs jautājums tālāk.

Varat arī uzdot jautājumu, atstāt komentāru vai sniegt atsauksmes, izmantojot veidlapu Atstājiet atbildi, kas atrodas šīs lapas beigās.

Visbeidzot, lai uzzinātu vairāk par e-pasta tehnoloģiju S zonām, apmeklējiet mūsu Windows PowerShell norādījumu lapu. Iespējams, jums ļoti noderēs arī mūsu lapa Darbs no mājas lapas.

Atsauces un turpmākā literatūra

  1. Invoke-Command
  2. Powershell, ja cits paskaidrojums: sintakse un piemēri
  3. Get-ChildItem
  4. Testa ceļš