【问题标题】:"For" command and "findstr" in windows command promptWindows 命令提示符中的“For”命令和“findstr”
【发布时间】:2015-02-23 05:52:04
【问题描述】:

在另一篇文章中,我找到了将文件重命名为 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

我假设它以某种方式限制了刺痛。但是怎么做呢?

【问题讨论】:

    标签: batch-file for-loop dos findstr


    【解决方案1】:

    那一行发生了几件事。

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

    这里有点复杂: \ 是 findstr 的转义字符,允许按字面解释下一个字符。 . 只是一个句号,但没有前面的\,它是一个单字符通配符(f.re 会拿起票价和火等)

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

    LocalDateTime
    20150223010540.071000-300
    

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

    20150223010540.071000-300
    

    然后整个事情都在 for /F 循环中,因此该命令的输出可以存储在变量中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-08
      • 2018-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      相关资源
      最近更新 更多