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

use*_*234 0 windows loops cmd batch-file

与此类似:使用'for'循环迭代目录中的所有文件但是我需要遍历目录中的每个第5个文件?什么是最聪明的方法呢?(不需要是for循环)

MC *_* ND 5

一个班轮

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

它会

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

  • 对于文件夹中的每个文件(for %a in (*) do)

  • 隐藏calc的输出和任何error(>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.这将失败并出现错误(hiden,其原因2>nul)when x=0(第五个文件)

  • 条件运算符||(当前一个失败时执行下一个命令)执行echo %a前一个1/x失败的时间