【问题标题】:Set output of a command to a variable将命令的输出设置为变量
【发布时间】:2015-04-23 13:00:44
【问题描述】:

我想将 10 天之前修改的文件数设为一个变量。 我可以使用

获取文件数
forfiles /P "D:\files" /S /D -10  | find /c /v ""

但是当我尝试使用 FOR 将其分配给变量时,它会出错。 我在 FOR 中使用的命令是

FOR /F "delims=" %i IN ('forfiles /P "D:\files" /S /D -10  | find /c /v ""') DO set today=%i

当我删除| find /c /v ""时它实际上工作正常

【问题讨论】:

    标签: windows batch-file cmd pipe io-redirection


    【解决方案1】:
    FOR /F "delims=" %i IN ('forfiles /P "D:\files" /S /D -10  ^| find /c /v ""') DO set today=%i
    

    在这种情况下,您需要逃离管道。

    【讨论】:

      【解决方案2】:

      是的,您可以使用 FIND 命令来计算找到的次数,但您不需要这样做。你可以只使用 set 命令来迭代一个变量。

      FOR /F "delims=" %%G IN ('forfiles /P "D:\files" /S /D -10') do @set /a count+=1 
      

      【讨论】:

        猜你喜欢
        • 2014-05-26
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 2017-04-20
        • 2020-12-19
        • 2022-09-27
        • 2013-02-03
        • 2023-03-17
        相关资源
        最近更新 更多