繁体   English   中英

正则表达式模式以匹配目录输出中的当前目录

[英]regex pattern to match current directory in dir output

我尝试从Windows中dir命令产生的输出中提取特定目录的创建日期。

例:

dir c:\\folder\\Myfolder\\ /T:C /A:D

输出:

22-11-2013  15:09    <DIR>          .
22-11-2013  15:09    <DIR>          ..
21-03-2015  14:32    <DIR>          Folder1
12-09-2014  11:03    <DIR>          Folder2
18-10-2016  13:29    <DIR>          Folder3

我试图将输出传递给findstr以便使用正则表达式。 但是dir c:\\folder\\Myfolder\\ /T:C /A:D | findstr \\r "\\." dir c:\\folder\\Myfolder\\ /T:C /A:D | findstr \\r "\\." 同时显示. ..线。

我需要的是Myfolder的日期和时间(即以. Myfolder ),以便为此文件夹创建一个时间戳。

对于最后一次写入时间,不需要管道findstr 可以检索与以下相同的信息

for /d %%a in ("c:\folder\Myfolder") do echo %%~ta

使用~t的修改for替换参数来检索文件的时间戳。

但是该方法不能用于检索文件夹创建时间(如Magoo注释)。 要检索它,您将需要保持原始方法

dir /tc /ad "c:\folder\Myfolder\.?" | findstr /e /c:" \."

.?只是为了缩短要由findstrdir的枚举时间过滤的列表)

或者您可以使用wmic (在这种情况下,必须更改文件夹命名格式,将反斜杠加倍)

wmic fsdir where name="c:\\folder\\Myfolder" get CreationDate /value

在这种情况下,您会得到类似

CreationDate=20160927171354.871547+120
dir c:\folder\Myfolder\ /ad /t:c|findstr /L /e /c:" ."

应该产生您想要的数据

findstr /L文字/e/c:" ."结尾/c:" ." 常量字符串空间

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM