批处理迭代每个第X个文件

时间:2017-05-13 13:30:39

标签: windows loops batch-file cmd

与此类似:Iterate all files in a directory using a 'for' loop但是我需要迭代目录中的每个第5个文件?什么是最聪明的方法呢? (不需要是for循环)

2 个答案:

答案 0 :(得分:5)

一个班轮

set x=0 & for %a in (*) do @((>nul 2>nul set /a "x=(x+1)%5,1/x") || echo %a)

它会

  • 初始化计数器(set x=0

  • 对于文件夹(for %a in (*) do

  • 中的每个文件
  • 隐藏calc的输出和任何错误(>nul 2>nul),增加计数器并获取值的余数除以5(set /a x=(x+1)%5)。这会将第一个文件的计数器值设置为1,第二个文件设置为2,...第五个文件设置为0(5/5 = 1 with a reminder of 0

  • 在同一set /a内,我们还尝试计算1/x。当2>nul(第五个文件)

  • 时,这将失败并显示错误(hiden,x=0的原因)
  • 条件运算符||(上一次失败时执行下一个命令)在前一个echo %a失败时执行1/x

答案 1 :(得分:1)

我无法理解为什么每个人都想要一个单行程来解决复杂的任务。但无论如何,你在这里:

 <input autocomplete = 'shipping street-address'>