• [PowerShell]列出檔案與資料夾的資訊


    在 Windows PowerShell 中,瀏覽磁碟機以及操控這些磁碟機上的項目,就跟使用檔案總管操控 Windows 實體磁碟機上的檔案和資料夾是類似的行為,只是一個要透過腳本,一個則是透過滑鼠。


    使用 Get-ChildItem 可取得資料夾目前所在之當層目錄中所有的項目,亦即該資料夾內所有的檔案和子資料夾。加上選擇性 Force 參數則可顯示檔案屬性是隱藏或系統的項目。若要顯示更內層所包含的項目,必須一併指定 Recurse 參數。例如,下面的命令會顯示 Windows PowerShell 磁碟機 C(等同於 Windows 實體磁碟機 C)根目錄的內容:
    Get-ChildItem -Force C: -Recurse | Out-Host -Paging

    Get-ChildItem 提供 PathFilterIncludeExclude 等參數來篩選項目,而這些參數通常都是依照名稱進行篩選的。因此通常都會搭配 Where-Object cmdlet,因為它可以依照項目的其他屬性,來進行複雜的篩選作業。


    例如,使用下面的指令可以找出 Program Files 資料夾內,上次修改日期是在 2009 年 4 月 10 日以後,且大小介於 2 MB 到 15 MB 之間的所有 .exe 可執行檔:
    $strInclude = "*.exe"
    Get-ChildItem -Path $env:ProgramFiles -Recurse -Include $strInclude |`
      Where-Object -FilterScript {`
        ($_.LastWriteTime -gt "2009-4-10") -and ($_.Length -ge 2MB) -and ($_.Length -le 15mb)} |`
        Format-Table Name, @{Label="Mbytes";Expression={ "{0:N2}" -f ($_.Length / 1Mb) }}, `
          LastWriteTime, CreationTime, Mode -AutoSize |`
        Out-Host -Paging
    現在來解說一下程式碼中的兩個關鍵指令。

    如同在 DOS 環境下一樣,在 Windows PowerShell 中也提供存取 Windows 環境變數的功能,以程式碼中的 $env:ProgramFiles 來說,就是顯示Program Files 環境變數的值。如果要顯示 WINDIR 環境變數的值,可在 Windows PowerShell 命令提示字元下,輸入下列命令:
    $env:windir
    


    @{Name="Mbytes";Expression={ "{0:N2}" -f ($_.Length / 1Mb) }} 是用來計算以 MB 為單位的檔案大小。在大括弧內,我們指定雜湊表的兩個元素:屬性 Label(在此是顯示成 Mbytes)與屬性 Expression(也就是將用來計算屬性值的指令碼區塊,在此是以將其大小除以 1MB,簡單地說,就是用 MB 為單位來顯示其大小,而 N2 是表示顯示到小數點之後 2 位)
  • 相关阅读:
    十分钟抢票千余张,黄牛的抢票软件是何原理
    常见乱码解决
    如何给程序中的变量起个好名字
    jsp自定义标签
    request.getHeader("Referer")理解【转载】
    mybatis学习笔记1--HelloMybatis
    Spring学习笔记14---bean的使用
    Spring学习笔记13--Autowire(自动装配)
    Spring 学习笔记12--AOP讲解
    Spring学习笔记11--Spring 自动装配 Bean
  • 原文地址:https://www.cnblogs.com/cnsealine/p/3336037.html
Copyright © 2020-2023  润新知