将命令的输出设置为变量

时间:2015-04-23 13:00:45

标签: windows batch-file cmd

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

时,它实际上正常工作

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

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