当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 检查 PowerShell 中是否存在文件夹 [5 种方法]

作者:精品下载站 日期:2024-12-14 05:25:49 浏览:14 分类:玩电脑

检查 PowerShell 中是否存在文件夹 [5 种方法]


[玩转系统] 检查 PowerShell 中是否存在文件夹 [5 种方法]

使用内置 Cmdlet 和方法

我们可以使用内置的 cmdlet 和方法来检查目录是否存在。

使用测试路径 Cmdlet

要检查文件夹是否存在,请使用 Test-Path cmdlet。

使用内置 Cmdlet 和方法:

$path = "C:\Windows"
if(test-Path -Path $path){
    Write-Host "Folder exists."
}else{
    Write-Host "Folder does not exist."
}

输出 :

Folder exists.

PowerShell 的 Test-Path cmdlet 会验证路径是否存在,无论它是文件还是文件夹。此 cmdlet 可帮助编写需要验证特定文件和文件夹是否存在的脚本,然后再继续执行脚本的其余部分。如果路径存在,则返回true,否则返回false

我们还可以使用 Test-Path cmdlet 检查文件或文件夹的特定权限以及环境变量是否存在。例如,我们使用 Test-Path cmdlet 来检查该文件夹是否存在。我们将 test-path 包含在 if 语句中;如果路径存在,则打印文件夹存在。,否则文件夹不存在。

使用[System.IO.Directory]::Exists()方法

要确保目录存在,请使用[System.IO.Directory]::Exists()方法。

使用内置 Cmdlet 和方法:

$path = "C:\Windows"
if([System.IO.Directory]::Exists($path)){
    Write-Host "Folder exists."
}else{
    Write-Host "Folder does not exist."
}

输出 :

Folder exists.

[System.IO.Directory] 是一个 PowerShell 模块,提供一组用于处理目录和文件的 cmdlet。它允许我们创建、删除、复制、移动和重命名目录和文件。它还提供用于列出目录内容以及设置目录和文件权限的 cmdlet。

[System.IO.Directory] 模块包含在 Windows PowerShell 5.0 或更高版本中,并且可以在 PowerShell 库中找到。通过这个模块,我们可以轻松地从命令行管理文件和目录,或者为自动化任务编写脚本。

有时我们可能需要检查文件夹或目录是否存在。在 PowerShell 中,我们可以使用 .NET Framework 中的 [System.IO.Directory]::Exists() 方法。要使用它,请将路径传递到我们要检查的文件夹或目录。如果文件夹或目录存在,它将返回True,否则返回False。例如,我们使用此方法来检查path是否存在。

此外,我们用 if 语句包装了 Exists() 方法,以在满足 if 条件时显示 Folder isn't. 消息已实现;否则,else 块将被执行。

使用 Get-Item Cmdlet

要验证文件夹是否存在,请使用 Get-Item cmdlet。

使用内置 Cmdlet 和方法:

$path = "C:\Windows"
Get-Item -Path $path -ErrorAction SilentlyContinue

输出 :

    Directory: C:\
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        12/25/2022   2:50 PM                Windows

Get-Item cmdlet 从 PowerShell 中的给定位置检索项目,例如文件、文件夹、注册表项和其他对象。此外,Get-Item 可以接受来自管道的输入或通过提供路径来获取项目。最后,cmdlet 显示有关目录或文件(如果存在)的信息。

它具有许多可用的参数,使其功能强大,例如带有 SilentlyContinue 值的 -ErrorAction 会抑制所有错误并继续执行脚本。例如,我们使用带有 -ErrorAction SilentlyContinue 参数的 cmdlet 来检查 path 是否存在。如果是,它将在控制台上显示有关该文件的信息,否则什么也不显示。

我们可以使用一个变量来捕获结果并检查它是否有任何值来确定该文件夹是否存在。

使用内置 Cmdlet 和方法:

$path = "C:\Windows"
$folder = Get-Item -Path $path -ErrorAction SilentlyContinue
if ($folder){
    Write-Host "Folder exists."
}else{
    Write-Host "Folder does not exist."
}

输出 :

Folder exists.

如果文件夹存在,则 folder 变量的值将是文件夹对象,并且 if 块内的代码将执行并打印 Folder contains. 使用 Write-Host cmdlet。如果文件夹不存在,folder 变量的值为 null,并且将执行 else 块内的代码。

其他 Cmdlet

我们可以用下面给出的 cmdlet 替换 Get-Item cmdlet。

  • Get-ChildItem cmdlet 显示path 的内容(如果存在)。
  • dirGet-ChildItem cmdlet 的别名。
  • Get-ItemProperty cmdlet 显示有关路径 的信息(如果存在)。

创建自定义别名

要检查目录是否存在,我们可以使用 New-Alias 创建自定义别名。

创建自定义别名:

$path = "C:\Windows"
New-Alias exists Test-Path
if(exists $path){
    Write-Host "Folder exists."
}else{
    Write-Host "Folder does not exist."
}

输出 :

Folder exists.

PowerShell 中的 New-Alias cmdlet 允许我们为 cmdlet、函数和脚本创建别名。别名对于为常用命令创建更短、更容易记住的名称非常有用。使用 PowerShell 时,它们易于设置并节省时间和精力。此外,我们可以为同一事物创建多个别名,每个别名具有不同的名称。

例如,我们为 Test-Path cmdlet 创建了 exists 别名。请注意,我们可以将 Test-Path cmdlet 替换为我们在代码部分中讨论的其他 cmdlet,以便使用内置 cmdlet 和方法及其各自的参数。

接下来,我们在 if 语句中包含 exists 别名,以打印 Folder isn't. 如果指定的文件夹存在;否则,上面的代码将执行else块并显示文件夹不存在。

这就是如何在 PowerShell 中检查文件夹是否存在的全部内容。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯