在 Windows PowerShell 中检查一个文件是否存在

Rohan Timalsina 2023年1月30日
  1. 使用 Test-Path 检查 PowerShell 中是否存在文件
  2. 使用 [System.IO.File]::Exists() 检查文件是否存在于 PowerShell 中
  3. 使用 Get-Item 检查 PowerShell 中是否存在文件
  4. 使用 Get-ChildItem 检查 PowerShell 中是否存在文件
在 Windows PowerShell 中检查一个文件是否存在

有时,你会收到一条错误消息,指出该文件在 PowerShell 中不存在。本教程将介绍四种方法来检查 PowerShell 中是否存在文件。

使用 Test-Path 检查 PowerShell 中是否存在文件

第一种方法是 Test-Path cmdlet。它确定完整路径是否存在。如果路径存在则返回 $True,如果缺少任何元素则返回 $False-PathType Leaf 参数检查文件而不是目录。

Test-Path -Path "C:/New/test.txt" -PathType Leaf

输出:

True

如果目录 New 中没有名为 file.txt 的文件,则返回 $False

Test-Path -Path "C:/New/file.txt" -PathType Leaf

输出:

False

使用 [System.IO.File]::Exists() 检查文件是否存在于 PowerShell 中

检查文件是否存在的另一种方法是 [System.IO.File]::Exists()。它提供布尔结果,如果文件存在则为 True,如果文件不存在则为 False

[System.IO.File]::Exists("C:/New/test.txt")

输出:

True

使用 Get-Item 检查 PowerShell 中是否存在文件

Get-Item cmdlet 用于获取指定路径中的项目。你可以通过指定文件的路径来使用它来检查文件是否存在。它打印文件的模式(属性)、上次写入时间、长度和文件名(如果存在)。如果文件不存在,它会显示错误消息。

Get-Item C:/New/test.txt

输出:

Directory: C:\New

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/11/2021   2:59 PM              5 test.txt

以下是文件不存在时的输出。

Get-Item : Cannot find path 'C:\New\test10.txt' because it does not exist.
At line:1 char:1
+ Get-Item C:/test/test10.txt
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\New\test10.txt:String) [Get-Item], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand

使用 Get-ChildItem 检查 PowerShell 中是否存在文件

最后一种方法是使用 Get-ChildItem cmdlet。它获取一个或多个指定路径中的项目和子项目。如果文件存在于指定路径中,它将显示文件详细信息。

Get-ChildItem -Path C:/New/test.txt

输出:

Directory: C:\New

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        12/11/2021   2:59 PM              5 test.txt

它打印一条错误消息,说 Cannot find path '$path' because it does not exist.

 Get-ChildItem -Path C:/New/test

输出:

Get-ChildItem : Cannot find path 'C:\New\test' because it does not exist.
At line:1 char:1
+ Get-ChildItem -Path C:/New/test
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (C:\New\test:String) [Get-ChildItem], ItemNotFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
作者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

相关文章 - PowerShell File