Мне нужно создать пакетный файл Windows, который генерирует CSV-файл с тремя полями для всех файлов в каталоге (за вычетом самого командного файла!).Windows пакетный файл для создания csv список файлов и дат
Поля:
- Имя файла (! Это может включать в себя запятые)
- Дата создания
- Дата изменения
Обратите внимание, что пакетный файл будет запускаться из каталога, и должен знать, чтобы сгенерировать файл .csv для файлов в текущем каталоге, но должен не указать командный файл или сгенерированный CSV-файл.
Powershell, vbscript и т. Д. В моей ситуации нецелесообразны, поэтому он должен быть пакетным файлом Windows.
EDIT:
Вот два основных подхода, которые я пробовал.
Первая попытка: Я попытался отделяя оголенные имена файлов в «temp1.tmp», список файлов с созданными метками времени в «temp2.tmp», и список файлов с модифицированными метками времени в «temp3 .tmp».
DIR /B /A:-D-H | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp1.tmp"
DIR /A:-D-H /T:C | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp2.tmp"
DIR /A:-D-H /T:W | FIND /V "Print Files.bat" | FIND /V "File List" | FIND /V "temp" > "temp3.tmp"
MORE +5 "temp2.tmp" > "temp4.tmp"
COPY /Y "temp4.tmp" "temp2.tmp"
MORE +5 "temp3.tmp" > "temp4.tmp"
COPY /Y "temp4.tmp" "temp3.tmp"
DEL /F/Q "temp4.tmp"
Но проблема с этим подходом заключается в том, что я не могу понять, как читать строки из более чем одного файла за раз. Вот ближе всего, что я нашел, но это только из одного файла:
FOR /F "delims=" %%i IN (temp1.tmp) DO (
ECHO."%%i" >> "File List.csv"
)
Вторая попытка: Я пытался избежать использования временных файлов, но безрезультатно.
FOR %%i IN (*.*) DO @ECHO "%%~ni%%~xi",%%~ti >> "File List.csv"
Проблема второго подхода заключается в том, что он не исключает имя пакетного файла, и он не обеспечивает метку времени создания файла.
Есть ли решение сделать для меня любую из этих работ или подход, который я еще не пробовал?
SO не «писать код для свободного меня» типа сайта. что ты уже испробовал? –
@AnsgarWiechers & Ken White: Вы оба правы. Я очень торопился, когда писал этот вопрос и забыл описать свои попытки решить проблему. – Elessar
Укажите местный формат времени, европейский или AM/PM? – Endoro