在另一篇文章中,我发现这个解决方案将文件重命名为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
我假设它以某种方式限制了刺痛。但是如何?
答案 0 :(得分:3)
这一行还有很多事情要做。
^
是批处理的转义字符。它就在那里,以便下一个字符不会破坏for循环。
|
是一个管道,它将左侧命令的输出发送到右侧的命令。
FINDSTR
搜索字符串并返回它找到的任何字符串。
这里有点复杂:
\
是findstr的转义字符,允许按字面解释下一个字符。
.
只是一个句号,但没有前面的\
,它是一个单字符的通配符(f.re会选择票价和火力等)。
wmic os get localdatetime
运行wmic
并返回本地日期和时间,其输出如下所示:
LocalDateTime
20150223010540.071000-300
当你将它传递给findstr并告诉findstr返回包含单个句点的行时,你得到
20150223010540.071000-300
然后整个事情都在for /F
循环内部,以便该命令的输出可以存储在变量中。