目錄清單包括文字檔案/Excel 檔案的修改日期、檔案大小

目錄清單包括文字檔案/Excel 檔案的修改日期、檔案大小

我想在單一文字檔案中列出整個磁碟機 (Z:) 的目錄、子目錄和文件,並包含所有日期和檔案大小。然後我可以在 Excel 中開啟該文件。

我目前正在使用以下命令:

dir z:\ /s /o:gne >text.txt

有什麼方法可以讓我獲得與通常使用 tree 命令獲得的輸出類似的輸出,並將所有文件和子目錄堆疊在一個而不單獨列出?

如果我想刪除其他不必要的資訊(例如時間),我必須做什麼或輸入什麼?

答案1

powershell ls -r -fo Z:\ ^|?{!$_.PSIsContainer}^|Select DirectoryName,Name,BaseName,Extension,Length,CreationTime,LastAccessTime,LastWriteTime ^|epcsv Z:\excel.csv -En  UTF8 -NoType -Delim ';'
  • ^|- ^- cmd 中掩碼傳輸器/管道符號,|- 管道對象
  • $_- 管道中目前物件的變數;樣本:

    powershell 'a','B','c','d','F' ^|%{if($_.toLower() -gt 'b'){write $_}}
    
  • ?= where- 檢查不是目錄?{!$_.PSIsContainer}循環{}

  • ls -r- 取得所有檔案/以及所有子目錄和目前目錄

  • -fo= -force- 新增到隱藏、系統和唯讀屬性檔案列表
  • 'Z:\' - 目錄路徑,如果使用 'Z:' - 將目前目錄設為 Z: cd。

  • select- 選擇ls管道物件的屬性

  • epcsv= Export-Csv- 將 PowerShell 物件匯出到分隔值 (CSV) 檔案。

  • -En= -Encoding- 編碼字串 匯出的 CSV 檔案的編碼。有效值為:Unicode、UTF7、UTF8、ASCII、UTF32、BigEndian unicode、預設和 OEM。預設為 ASCII。
  • -NoType= -NoTypeInformation- 省略 CSV 檔案中的類型資訊。
  • -Delim ';'- -Delimiterchar 用於分隔屬性值的分隔符號。預設為逗號 (,)。輸入一個字符,例如冒號 (:)。若要指定分號 (;),請將其括在引號中。

結果: 在此輸入影像描述

答案2

上面的內容有我發現的目錄名稱中的空格問題,根據我的經驗,這個基本的 powershell 指令效果更好:

Get-ChildItem -r "Z:\" | select DirectoryName,Name,Extension,CreationTime,AccessTime,LastWriteTime | Export-Csv -Append -Path "Z:\export.csv" -En UTF8 -NoType -Delim ','

另外使用分隔符號“;”讓 Excel 感到困惑,將其更改為“,”意味著 Excel 可以打開匯出的 CSV,而無需進一步操作資料。

相關內容