Как да използвате PowerShell, за да проверите дали файл съществува

28 май 2021 г 35296 Изгледи powershell проверете дали файлът съществува

В тази S зона Виктор ви учи как да използвате PowerShell, за да проверите дали съществува файл. Ръководството обхваща множество примери за използване на PowerShell, за да проверите дали съществува файл.





За да използвате PowerShell, за да проверите дали даден файл съществува, използвайте Тест-път Cmdlet. Можете обаче да въведете пътя на файла директно в Тест-път команда или запишете файла в променлива. След това използвайте променливата в Тест-път .



Разгледайте темите на публикациите

Как да използвате PowerShell, за да проверите дали файл съществува без променлива

Как да използвате PowerShell, за да проверите дали файл съществува без променлива

Този раздел ви учи как да бягате Тест-път команда без променлива.



Можете да стартирате Test-Path като самостоятелна команда. Освен това можете да комбинирате командата с an АКО изявление за изпълнение на допълнителни задачи въз основа на резултата от Тест-път команда.



Как да стартирате тестов път директно без променлива

Този подраздел ви учи как да стартирате Test-Path самостоятелно (без да използвате резултата в an АКО изявление).

Имам файл, наречен процеси.txt в E: eports.



Как да използвате PowerShell, за да проверите дали файл съществува

За да проверите дали файлът съществува, въведете командата по-долу в PowerShell и натиснете enter



|_+_|

Когато натиснах, PowerShell се върна Вярно , което означава, че файлът съществува.

Как да използвате PowerShell, за да проверите дали файл съществува

Въпреки това, ако изпълня същата команда за файл, който не съществува, PowerShell се връща Невярно .

Как да използвате PowerShell, за да проверите дали файл съществува

Как да комбинирате тестов път и оператор IF без променлива

Както споменах по-рано, след като използвате PowerShell Test-Path, за да проверите дали файл съществува, можете да използвате резултата в АКО изявление за изпълнение на задачи за добавяне.

В този пример ще проверя дали E: eportsprocesses.txt съществува и ако съществува, ще копирам файла в C: eports. Ето скрипта, който ще свърши работа.

Препоръчително е да изпълните тази команда в PowerShell ISE |_+_|

Ето резултата в PowerShell ISE и файла, копиран в C: eports

Как да използвате PowerShell, за да проверите дали файл съществува

Мога да направя скрипта по-интелигентен, като добавя два допълнителни реда.

|_+_|

и….

|_+_| Първата команда по-горе показва съобщение, ако файлът е копиран. Вторият показва съобщение, че файлът не съществува.

Ето модифицирания скрипт...

|_+_|

Как да използвате PowerShell, за да проверите дали файл съществува с променлива

Как да използвате PowerShell, за да проверите дали файл съществува с променлива

В последния раздел ви показах как да използвате PowerShell, за да проверите дали файл съществува, без да използвате променливи. В този раздел ще запиша резултата от Test-Path в променлива. След това използвайте променливата в an АКО изявление.

В примера в този раздел искам да проверя дали първи-файл.txt съществува в пътя, показан на изображението по-долу. След това, ако съществува, ще копирам файла в C:PS

как да изтеглите dlcs на пара -
Как да използвате PowerShell, за да проверите дали файл съществува с променлива

В първите стъпки ще изпълня командата по-долу:

|_+_|

Тази команда е същата като последната с една разлика – резултатът от командата се записва в файлът съществува променлива.

Как да използвате PowerShell, за да проверите дали файл съществува с променлива

Как да използвате PowerShell, за да проверите дали файл съществува и да го копирате

Когато въведох този раздел, запазих изхода на Тест-път команда към файлът съществува променлива.

|_+_|

В този подраздел ще ви науча как да копирате файла, ако съществува. За да направя това, ще ви представя АКО изявление с Копиране на артикул команда.

|_+_|

Ето пълния скрипт с комбинираните команди:

|_+_|

А ето и скрипта в PowerShell ISE.

Как да използвате PowerShell, за да проверите дали файл съществува и да го изтриете

В последния подраздел видяхте как да проверите дали файл съществува и да го копирате. Ами ако искате вместо това да копирате файла?

Ако искате да изтриете файла, вместо да го копирате, заменете Копиране на артикул команда с Премахни артикул команда.

Ето актуализирания скрипт, който използва израза PowerShell IF, за да провери дали съществува файл. След това, ако съществува, изтрийте го...

|_+_|

Как да използвате PowerShell, за да проверите дали файл съществува. Излезте

В някои ситуации на скриптове на PowerShell може да искате да проверите дали съществува файл. След това, ако съществува, изпълнете определена задача – като копиране или изтриване на файла – в противен случай излезте от скрипта.

За да постигнете това, всичко, което трябва да направите, е да добавите иначе блок на Ако изявление.

В последния подраздел използвах този скрипт, за да изтрия файл, ако съществува.

|_+_|

Ако искам скриптът да излезе, ако файлът не съществува, ще променя скрипта, както е показано по-долу...

|_+_|

Ето логиката на модифицирания скрипт...

Проверете дали файлът E: eportsfirst-file.txt съществува. Ако съществува, изтрийте файла.

Ако обаче файлът не съществува, изпълнете командата в иначе блок на Ако изявление. В този случай командата в иначе примката е думата, Пауза .

Пауза казва на PowerShell да спре да обработва скрипта. Можете също да добавите Пауза в блока If на израза – под командата Remove-Item...

tumblr безопасен режим мобилен
|_+_|

Как да използвате PowerShell, за да проверите дали файл съществува и не е празен

Това е още едно условие, често срещано в скриптовете на PowerShell – проверка дали файл съществува и не е празен. Това може да е приложимо за регистрационни файлове.

Например, ако имате приложение, което създава и актуализира регистрационни файлове, можете да напишете скрипт на PowerShell, който проверява дали новите регистрационни файлове са актуализирани.

Продължавайки нататък, за да проверите дали файл съществува, използвате Тест-път команда. Въпреки това, за да проверите дали файлът е празен, трябва да въведете друга команда, Get-ChildItem .

В този сценарий можете да използвате Get-ChildItem командвайте по два начина.

един , ако искате да проверите дали един файл е празен, можете да стартирате Get-ChildItem команда, използвайки пълния път на файла като пътека параметър. две , като алтернатива, ако искате да проверите куп файлове в папка, използвайте пътя на папката като пътека параметър.

В този раздел ще дам пример, който проверява дали конкретен файл съществува и е празен. Ще разгледам втория вариант в Как да използвате PowerShell, за да проверите дали даден файл съществува папка раздел по-късно в това ръководство.

В този пример искам да проверя дали файлът, първи файл.txt и ако е празен.

Как да използвате PowerShell, за да проверите дали файл съществува и не е празен

Както споменах по-рано, първата стъпка е да стартирате Get-ChildItem команда, използвайки пълния път на файла като пътека параметър. За да започнете, изпълнете командата по-долу...

|_+_|

Ето резултата от командата. От резултата от командата можете да видите, че файлът има свойство, наречено Дължина .

Ефективно, на Дължина свойството на файл показва размера на файла. Освен това, ако файлът е празен, Дължина ще бъде нула (0).

Така че, за да използваме PowerShell, за да проверим дали не е празно, ще проверим дали Дължина НЕ е нула (0).

За да постигна това, ще променя последната команда, както е показано по-долу...

|_+_|

Ето резултата от командата в PowerShell. В този случай, тъй като размерът на моя файл е 0 (празен), командата се върна фалшиво .

Как да използвате PowerShell, за да проверите дали файл съществува и не е празен

Това означава, че този файл е празен.

Но как да включим бита, който проверява дали файлът съществува? Радвам се, че попита!

За да представя логиката, която използва PowerShell, за да проверява дали файлът съществува и също така да проверя дали файлът НЕ е празен, ще комбинирам части от предишния ни скрипт и Get-ChildItem команда по-горе.

Ето моят модифициран скрипт...

netflix не работи expressvpn
|_+_|

В тази модифицирана версия на скрипта направих следните промени...

  1. В ред 2 запазих Get-ChildItem команда, която проверява дали даден файл е празен – в променлива, извикана $checkiffileisempty .
|_+_|
  1. След това в ред 3 добавих още едно условие към Ако изявление. Условната част от Ако изявлението е актуализирано на If (($fileexists -eq $True) -и ($checkiffileisempty -eq $False)).

    Това условие тества дали какво е запазено в $fileexists е Вярно (файлът съществува). Освен това проверява дали това, което е запазено в $checkiffileisempt е Невярно (файлът е празен).

    На практика PowerShell проверява дали Тест-път команда, която провери дали пътят на файла съществува, е Вярно . Освен това, той също така проверява дали Get-ChildItem команда, която проверява дали файлът НЕ е празен, е Невярно (което означава, че файлът е празен)
  2. И накрая, ако и двете условия са изпълнени, в ред 4 PowerShell ще изпълни командата в скобата {} на оператора If.

    В този пример имам тази команда в скобата {} на оператора If.
|_+_|

Командата добавя текста в Стойност параметър на Set-Content команда.

За да тествате дали скриптът работи, копирайте го в PowerShell ISE и стартирайте скрипта...

Как да използвате PowerShell, за да проверите дали файл съществува и не е празен

След като стартирах скрипта, файла, първи-файл.txt – който преди беше празен – сега има някои стойности в него. Освен това размерът на файла вече не е нула (0)!

Как да използвате PowerShell, за да проверите дали файл съществува в папка

Как да използвате PowerShell, за да проверите дали файл съществува в папка

Досега това ръководство обхваща множество сценарии за използване на PowerShell за проверка дали файл съществува.

В този раздел искам да се потопя дълбоко в папките. По-конкретно, ще научите как да проверите дали файл съществува в текущата папка или във всички подпапки.

Освен това ще научите как да използвате PowerShell, за да проверите дали файл съществува в множество папки. Накрая ще ви покажа как да използвате заместващ знак, за да проверите дали файл съществува.

Как да използвате PowerShell, за да проверите дали файл съществува в текущата папка

В този първи пример ще научите как да проверите дали файл съществува в текущата папка – с изключение на всички подпапки.

В този пример искам да проверя дали файлове с разширението на файла .log съществуват в папката E: eports. Искам обаче да изключа всички подпапки.

Първата стъпка е да стартирате Get-ChildItem команда. След това насочете изхода към Къде-обект и филтрирайте по PSIsContainer Имот.

В PSIsContainer свойството е свойство, което дефинира папки или директории. В Къде-обект команда, посочих $_.PSIsContainer -ne $true. Тази команда просто казва Не връщайте никакъв артикул, ако е такъв PSIsContainer свойството е вярно. Това ще върне само файлове.

Ето командата…

|_+_|

И ето резултата в PowerShell...

Как да използвате PowerShell, за да проверите дали файл съществува в текущата папка

Последната стъпка е да върнете пълния път на всички файлове с разширението .log в текущата папка.

Ето командата…

|_+_|

И резултатът…

От този момент, ако искате да изпълнявате допълнителни задачи върху файловете, можете да пренесете изхода на последния резултат в a За всеки цикъл. След това, в рамките на За всеки цикъл, можете да изпълнявате допълнителни команди.

Как да използвате PowerShell, за да проверите дали файл съществува в подпапки

Ако искате да проверите дали конкретен файл или файлове съществуват във всички подпапки, а не в текущата папка, трябва да направите леки промени в Get-ChildItem команда.

По-конкретно, когато пипате Get-ChildItem команда, в Къде-обект , филтрирате Къде-обект за връщане само на папки.

|_+_|

Командата връща пълния път към всички подпапки в посочената папка...

В следващата стъпка трябва да използвате За всеки оператор, за да преминете през всички папки, върнати от последната команда. След това, в рамките на За всеки изявление, стартирайте друго Get-ChildItem команда срещу всяка подпапка.

Има три варианта на За всеки но в този пример ще използвам За всеки -Обектна команда.

|_+_|

Командата показва всички регистрационни файлове в подпапките...

Как да използвате PowerShell, за да проверите дали файл съществува в подпапки

Как да използвате PowerShell, за да проверите дали даден файл съществува в текущата папка и всички подпапки

В последните 2 подраздела използвах PSIsContainer свойство или да филтрира подпапки, или да върне само подпапки. В този пример ще премахна PSIsContainer Имот.

Все пак ще представя а Get-ChildItem команден параметър, наречен Рекурсия . В Рекурсия параметър сили Get-ChildItem за да проверите посочената папка и всички нейни подпапки.

Ето модифициран скрипт.

|_+_|

В Рекурсия параметърът е въведен в първия Get-ChildItem команда. Във втория не се изисква Get-ChildItem команда (в рамките на За всеки обект блок).

Ето резултата от командата. Този път отчетът включва всички регистрационни файлове в горната папка и всички нейни подпапки.

Как да използвате PowerShell, за да проверите дали файл съществува на отдалечен компютър

Как да използвате PowerShell, за да проверите дали файл съществува на отдалечен компютър

Ако искате да тествате дали файл съществува на отдалечен компютър, можете да приложите същия принцип, обсъден във всички примери в това ръководство.

Трябва обаче да въведете нова команда, наречена Извикване-команда . След това, в рамките на Извикване-команда команда, използвайте нейната ScriptBlock параметър, за да посочите една от командите, които обсъдихме по-рано в това ръководство.

Друго важно нещо, което трябва да се отбележи, е, че може да се наложи да посочите потребителско име и парола за акаунт с разрешение за свързване с отдалечения компютър.

Освен това, посоченият акаунт трябва да има разрешение за изпълнение на командата в ScriptBlock параметър – на отдалечения компютър.

espier заключване на екрана ios7

Накрая използвайте Име на компютъра параметър, за да посочите името на отдалечения компютър.

За ваша справка, ето общия синтаксис на Извикване-команда команда.

|_+_|

За да прочетете повече за Извикване-команда команда, вижте Препратки и допълнително четене в края на това ръководство.

Ако се надявам, че успях успешно да ви науча как да използвате PowerShell, за да проверите дали съществува файл!

Надявам се също така да намерите S зоната за полезна. Ако го намерите за полезно, любезно гласувайте да до въпроса полезна ли е тази публикация по-долу.

Като алтернатива можете да зададете въпрос, да оставите коментар или да предоставите обратна връзка с формуляра за отговор, който се намира в края на тази страница.

И накрая, за повече Email tech S зони, посетете нашата страница с инструкции за Windows PowerShell. Може също да намерите нашата страница „Работа от начална страница“ за много полезна.

Препратки и допълнителна литература

  1. Извикване-команда
  2. Powershell, ако е обяснено друго: синтаксис и примери
  3. Get-ChildItem
  4. Тест-път