[英]“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.