Windows批处理文件,用于创建文件和日期的csv列表

Ele*_*sar 2 windows batch-file

我需要创建一个Windows批处理文件,该文件生成.csv文件,其中包含目录中所有文件的三个字段(减去批处理文件本身!).

领域:

  1. 文件名(这可以包括逗号!)
  2. 创立日期
  3. 修改日期

请注意,该批处理文件会从目录中运行,并且应该知道生成在当前目录下的文件.csv文件,但应该不会列出批处理文件或生成的.csv文件.

Powershell,vbscript等在我的情况下是不可行的,因此它必须是Windows批处理文件.

编辑:

以下是我尝试过的两种主要方法.

第一次尝试:我尝试将裸文件名分成"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"
Run Code Online (Sandbox Code Playgroud)

但这种方法的问题在于我无法弄清楚如何一次从多个文件中读取行.这是我找到的最接近的,但它只来自一个文件:

FOR /F "delims=" %%i IN (temp1.tmp) DO (
    ECHO."%%i" >> "File List.csv"
)
Run Code Online (Sandbox Code Playgroud)

第二次尝试:我试过避免使用临时文件,但无济于事.

FOR %%i IN (*.*) DO @ECHO "%%~ni%%~xi",%%~ti >> "File List.csv"
Run Code Online (Sandbox Code Playgroud)

第二种方法的问题是它不排除批处理文件名,并且它不提供文件创建时间戳.

是否有解决方案让这些对我有用,或者我尚未尝试过的方法?

End*_*oro 5

试试这个:

@ECHO OFF &SETLOCAL
(FOR /f "delims=" %%a IN ('dir /b /a-d') DO (
    FOR /f "tokens=1-3*" %%x IN ('dir /a-d /tc "%%~a"^|findstr "^[0-9]"') DO (
        ECHO "%%a",%%~ta,%%x %%y %%z
    )
))>DIR.csv
TYPE DIR.csv
Run Code Online (Sandbox Code Playgroud)