簡體   English   中英

如何使用Powershell檢查具有多個擴展名的文件?

[英]How to check file with multiple extension using Powershell?

我想檢查是否存在具有多個擴展名的文件。 我試過這種方法,它有效。 但我需要簡單的方法來完成這個過程。 有沒有人可以給我建議如何改進這個過程? 非常感謝。

$Data = "D:\Folder"

if (!(Test-Path $Data\*.que))
{
     if (!(Test-Path $Data\*.pro))
     {
          if (!(Test-Path $Data\*.err))
          {
               if (!(Test-Path $Data\*.skip))
               {
                    Write-Host "Complete"
               }
               else {

                    Write-Host "Finished, But Not Complete"
               }
          }
          else {

               Write-Host "Finished, But Not Complete"
          }
     }
     else {

          Write-Host ".pro Exist, Not Finished"
     }
}
else {

     Write-Host ".que Exist, Not Finished"
}
(Get-ChildItem -Path 'D:\Folder' -File -Recurse).Extension | Group-Object

您可以通過Get-ChildItem獲取目錄中的文件並僅獲取返回對象的擴展屬性,然后Group-Object獲取目錄列表以及每個目錄的數量

由於您有一些取決於文件類型的自定義消息,因此您可以通過幾種方式來解決這個問題。 一種方法是將所有內容放入 CSV 並對其進行迭代。 為了簡化代碼,檢查文件是否存在而不是不存在似乎是合乎邏輯的。 它可能看起來像這樣。

$CSVData = @'
Extension,NotPresent,Present
que,".que Exist, Not Finished",
pro,".pro Exist, Not Finished",
err,"Finished, But Not Complete",
skip,"Complete","Finished, But Not Complete"
'@ | ConvertFrom-Csv

$Data = "D:\Folder"

$CSVData | foreach {
    if(Test-Path "$Data\*.$($_.extension)")
    {
        Write-Host $_.present
    }
    else
    {
        write-host $_.notpresent
    }
}

除了您實際回復的那一欄之外,我將“禮物”欄留空。 如果您不需要填寫這些,您可能需要在Write-Host之前檢查$_.present是否有任何內容

$CSVData = @'
Extension,NotPresent,Present
que,".que Exist, Not Finished",
pro,".pro Exist, Not Finished",
err,"Finished, But Not Complete",
skip,"Complete","Finished, But Not Complete"
'@ | ConvertFrom-Csv

$Data = "D:\Folder"

$CSVData | foreach {
    if(Test-Path "$Data\*.$($_.extension)")
    {
        if($null -ne $_.present)
        {
            Write-Host $_.present
        }
    }
    else
    {
        write-host $_.notpresent
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM