список файлов - включая все вложенные папки с именем файла, путем, датой и размером - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь получить список всех файлов в каталоге, включая файлы во всех подпапках.

Я хочу указать следующие столбцы: Filename, Path, Size и Date.

Я пытался провести собственное исследование и приблизиться, но пока не нашел полного решения.

Я могу получить путь к файлу и имя файла вместе с датой и размером, используя эту команду ниже, к сожалению, я не могу получить все файлы в подпапках.

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?

1 Ответ

0 голосов
/ 23 апреля 2019

Это можно сделать с помощью переменных% ~ в пакетном скрипте 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

. Если вы не хотите запускать файл .ps1 из сценария .bat, его можно при достаточных усилиях поместить в файл .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"
...