繁体   English   中英

Windows命令提示符下的“ For”命令和“ findstr”

[英]“For” command and “findstr” in windows command prompt

在另一篇文章中,我发现此解决方案可将文件以ISO格式重命名为当前日期:

FOR /F %%A IN ('WMIC OS GET LocalDateTime ^| FINDSTR \.') DO @SET B=%%A
copy test.java %B:~0,4%-%B:~4,2%-%B:~6,2%.java

我了解这部分以外的所有内容:

 ^| FINDSTR \.

它有什么作用? 由于“ WMIC OS GET LocalDateTime”具有这种格式

LocalDateTime
20150223064808.538000+060

我假设它以某种方式限制了刺痛。 但是如何?

该行中发生了几件事。

^是批处理的转义字符。 在那里是为了使下一个字符不会中断for循环。 | 是一个管道,它将左侧的命令输出发送到右侧的命令。 FINDSTR搜索一个字符串,并返回找到的任何字符串。

这是有点复杂的地方: \\是findstr的转义字符,它允许对下一个字符进行字面解释。 . 只是一个时期,但是没有前面的\\ ,这是一个单字符通配符(f.re会收取车费和火费,等等)

wmic os get localdatetime运行wmic并返回本地日期和时间,其输出如下所示:

LocalDateTime
20150223010540.071000-300

当将其通过管道传递给findstr并告诉findstr返回包含单个句点的行时,您将获得

20150223010540.071000-300

然后整个过程都在for /F循环中,这样该命令的输出可以存储在变量中。

暂无
暂无

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

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