将命令的输出设置为变量

Set output of a command to a variable

我想将 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 ""

时它实际上工作正常
FOR /F "delims=" %i IN ('forfiles /P "D:\files" /S /D -10  ^| find /c /v ""') DO set today=%i

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

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

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