我想使用dir命令并将filename作为第1列,创建日期时间作为第2列,修改日期时间作为第3列。
我怎么能实现这个目标?
http://www.computerhope.com/dirhlp.htm
这显示可能会使用/T
但不确定如何使用它,因为dir /TCAW
未列出我需要的格式。
答案 0 :(得分:5)
正如Christopher Painter所说,DIR命令无法直接执行此操作。
但是有一个简单的命令行一个衬垫,显示您的信息没有页眉或页脚信息。此命令仅列出文件。只要您的位置使用3个空格分隔的组件显示时间戳,它就可以工作。例如,我的美国时间戳显示为mm/dd/yyyy hh:mm:ss am
。
for /f "tokens=1-4*" %A in ('dir /a-d /tc^|findstr "^[0-9]"') do @echo %E %A %B %C %~tE
如果要包含目录,请将/a-d
更改为/a
。或者,如果您想要同时使用文件和目录,但只想删除隐藏和系统文件/目录,则只需完全删除/a-d
。
以下是格式良好的批处理脚本中的相同命令:
@echo off
for /f "tokens=1-4*" %%A in (
'dir /a-d /tc^|findstr "^[0-9]"'
) do echo %%E %%A %%B %%C %%~tE
我不喜欢前面带有文件名的输出格式,因为名称的宽度不同 - 很难读取输出,因为列没有对齐。我更喜欢把文件名放在最后:
@echo off
for /f "tokens=1-4*" %%A in (
'dir /a-d /tc^|findstr "^[0-9]"'
) do echo %%A %%B %%C %%~tE %%E
答案 1 :(得分:2)
DIR不支持您要执行的操作。 / T:Fileld ID一次只能显示一组时间信息。我不确定你要做什么,但我发现你有一些C#经验。你可以编写你唯一的控制台应用程序来输出你的方式并改为调用它。
答案 2 :(得分:0)
@ ECHO OFF
(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.txt
TYPE DIR.txt
答案提到:Windows batch file to create csv list of file and dates