【问题标题】:file listing - Including all subfolders with filename, path, date and size文件列表 - 包括所有带有文件名、路径、日期和大小的子文件夹
【发布时间】:2019-04-23 08:53:59
【问题描述】:

我正在尝试获取目录中所有文件的列表,包括所有子文件夹中的文件。

我想要的列是FilenamePathSizeDate

我已尝试进行自己的研究并接近但尚未找到完整的解决方案。

我可以使用下面的命令获取文件路径和文件名以及日期和大小,不幸的是我无法获取子文件夹中的所有文件。

dir /t > filelist1.txt

下面的 CMD 命令确实从所有子文件夹中获取文件名,但我无法让它生成日期。

(@For /F "Delims=" %A in ('dir /B/S/A-D') Do @Echo %~fA %~zA) >filelist.txt

我想也许这样做是为了包含日期,但它没有用。

(@For /F "Delims=" %A in ('dir /B/S/A/D') Do @Echo %~fA %~zA) >filelist.txt

这个文件还提供了我可以接受的路径和文件名(我将使用 Excel 来分隔),但是可以将路径和文件名分开吗?

是否也可以将这些列用制表符分隔以便于 Excel 导入?

【问题讨论】:

标签: windows cmd filelist


【解决方案1】:

这可以通过 cmd.exe 批处理脚本中的 %~ 变量来完成。但是,它在 PowerShell 中更容易且更具可读性。输出在一个名为 FileList.csv 的文件中。

Get-ChildItem -Recurse |
    ForEach-Object {
        [PSCustomObject]@{
            FileName = $_.Name
            Path = $_.Directory
            Size = $_.Length
            Date = $_.LastWriteTime
        }
    } |
    Export-Csv -Path './FileList.csv' -Delimiter "`t" -Encoding ASCII -NoTypeInformation

如果您不想从 .bat 脚本运行 .ps1 文件,可以通过足够的努力将其放入 .bat 文件脚本中。

powershell -NoLogo -NoProfile -Command ^
    "Get-ChildItem |" ^
        "ForEach-Object {" ^
                "[PSCustomObject]@{" ^
                "FileName = $_.Name;" ^
                "Path = $_.Directory;" ^
                "Size = $_.Length;" ^
                "Date = $_.LastWriteTime" ^
            "}" ^
        "} |" ^
        "Export-Csv -Path './FileList.csv' -Delimiter "`t" -Encoding ASCII -NoTypeInformation"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多