Требование к списку Windows CLI: список dir /n/s, но одна строка на файл dir /b/s и встроенный полный путь

Я часто использую пакетный скрипт dirlist.bat для создания быстрого текста с возможностью поиска для поиска информации о файле.

список каталогов.bat

dir *.* /b/s >dirlist.txt

теперь мне нужна дополнительная информация о дате и размере. Поскольку это приведет к созданию списка из нескольких столбцов, предпочтительнее использовать csv-listoutput.

Это мое вдохновение:

dir *.doc? /n/s >dirlist.txt 

но я получаю смешанный многострочный вывод. Совпадения файлов и сводки по папкам перемешаны.

Знаете ли вы подход скрипта для перечисления базовой информации о каждом совпадении файлов в одну строку?


person olippuner    schedule 08.11.2018    source источник
comment
Вам, вероятно, лучше использовать PowerShell, а не изменять текст в стиле Unix.   -  person Hong Ooi    schedule 08.11.2018
comment
Можно поконкретнее, привести пример кода?   -  person olippuner    schedule 08.11.2018
comment
Возможный дубликат пакетного файла Windows для создания списка csv файла и даты   -  person    schedule 08.11.2018


Ответы (2)


Вероятно, вы могли бы использовать ForFiles.

Пример:

@(ForFiles /S /M *.* /C "Cmd /C Echo @File,@FDate,@FSize")>DirList.txt
person Compo    schedule 08.11.2018
comment
Большое спасибо. Это работает как шарм. Вот некоторые небольшие модификации с использованием ; в качестве CSV-разделителя для моей страны проживания: @(ForFiles /S /M . /C Cmd /C Echo @FDate;@fsize;@file;@path;)›DirList.csv - person olippuner; 09.11.2018
comment
Я не заметил, что моя автозамена удалила F, код исправлен, спасибо. Я не заменил запятые, потому что вопрос связан с CSV, и угадайте, что означает C? - person Compo; 09.11.2018

Почему бы просто не запустить цикл и получить с ним дату и размер файла?

for /f %i in ('dir /b/s *.doc?') do echo %~zti %~dpfi >>dirlist.txt

вы можете сбросить команду dir и просто использовать for /d и /r (рекурсивный) поиск. См. for /?

person Gerhard    schedule 08.11.2018