目录列表包括修改日期、文件大小到文本文件/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、Default 和 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 而无需对数据进行任何进一步操作。

相关内容