列出文件名和日期

时间:2012-05-18 09:29:52

标签: windows command-line batch-file dos command-prompt

我们有一个包含代码文件*.sql; *.xep; *.dll; *.aspx; *.gif的文件存储库,您很快就会将其提交给Production。在这个存储库中,我们有主文件夹,其中包含要转到PROD的最新代码文件,但我们还有所有使用代码提交给PRE-PROD的更改文件夹。您可以在下图中看到主存储库结构:

enter image description here

协议是每当我们向PRE-PROD提交内容时,我们都会创建一个更改文件夹,将其放在主存储库中,并更新主文件夹,但有时我们忘记执行第二部分。 我试图以自动方式做的是:如果主文件夹中有一个具有相同名称的文件,并且他们需要的更改文件夹具有相同的修改日期日(至少),这个特定的交叉点我可以很容易地做到在Excel甚至SQL中。 所以,最后:P,我需要帮助的是,进入一个csv fileformat(';'分隔值,'\ n'分隔行),所有*.sql; *.xep; *.dll; *.aspx; *.gif来自主存储库目录和子目录

到目前为止,我已经使用此dos命令进行了测试:

dir *.sql *.xep *.aspx *.dll *.gif /s /a:-D>listWithDate.txt

这个给我一个列表,即:listWithDate.txt,我以这种方式形成了一个:

2012/03/19[2sapces]14:27[Nspaces]4.006[1space][filename]
2012/03/19[2sapces]14:27[Nspaces]10.006[1space][filename]

所以需要帮助解决这两个问题:

批处理将文件名和日期列入csv格式化文件

批处理将listWithDate.txt格式化为csv格式化文件

非常感谢提前;)

2 个答案:

答案 0 :(得分:3)

以下单行将输出文件时间戳(作为单个单位),文件大小(以字节为单位)和文件名作为CSV行集:

>csvfile.txt (FOR %R IN (*.sql *.xep *.aspx *.dll *.gif) DO @ECHO "%~tR";%~zR;"%~nxR")

注意:这应该直接从命令提示符运行。如果您希望将其放在批处理脚本中,请将每个%字符加倍。

答案 1 :(得分:2)

嗯,我认为这可能有用:

    @echo off
    echo.
    if exist newfile.csv del newfile.csv
    for /f "tokens=1-4* delims= " %%a in (listWithDate.txt) do (
        rem %%a is date %%b is time, %%c is filesize, %%d is filename
        rem use %%b or %%c as needed
        echo %%d, %%a >> newfile.csv
    )

应该生成您正在寻找的文件,请告诉我这是否适合您