Ele*_*sar 2 windows batch-file
我需要创建一个Windows批处理文件,该文件生成.csv文件,其中包含目录中所有文件的三个字段(减去批处理文件本身!).
领域:
请注意,该批处理文件会从目录中运行,并且应该知道生成在当前目录下的文件.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)
第二种方法的问题是它不排除批处理文件名,并且它不提供文件创建时间戳.
是否有解决方案让这些对我有用,或者我尚未尝试过的方法?
试试这个:
@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)
| 归档时间: |
|
| 查看次数: |
17447 次 |
| 最近记录: |