我们有一个包含代码文件*.sql; *.xep; *.dll; *.aspx; *.gif
的文件存储库,您很快就会将其提交给Production。在这个存储库中,我们有主文件夹,其中包含要转到PROD的最新代码文件,但我们还有所有使用代码提交给PRE-PROD的更改文件夹。您可以在下图中看到主存储库结构:
协议是每当我们向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格式化文件
非常感谢提前;)
答案 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
)
应该生成您正在寻找的文件,请告诉我这是否适合您