Board logo

标题: [文件操作] 批处理怎样把图片每4个提取放在一个文件夹? [打印本页]

作者: 朱科技    时间: 2021-5-14 23:54     标题: 批处理怎样把图片每4个提取放在一个文件夹?

本帖最后由 朱科技 于 2021-6-6 16:04 编辑

6月6日更新:
文件夹内有若干图片,按这些图片排列的先后顺序(不按扩展名)每4个提取放在一个文件夹,文件夹以1开始递增的顺序命名,如何实现啊
作者: xp3000    时间: 2021-5-15 00:11

  1. @echo off&setlocal enabledelayedexpansion
  2. set m=1
  3. (for %%a in (*.jpg *.png *.bmp) do (
  4. set/a "n+=1,1/(4*m-n+1)"||(set/am+=1)
  5. md !m!&move "%%a" .\!m!\
  6. ))2>nul
复制代码
论坛似乎很多分组的
作者: qixiaobin0715    时间: 2021-5-16 10:32

分组相对简单,顺序要复杂一些。按文件名、文件大小、时间、扩展名等。比如楼上代码是按扩展名的顺序来的
作者: 朱科技    时间: 2021-5-16 15:45

回复 2# xp3000


    谢谢,实现了
作者: netdzb    时间: 2021-5-19 03:14

回复 1# 朱科技

这个批处理脚本还是很有实用性的。
作者: newswan    时间: 2021-5-19 13:36

  1. if %n%==4 ( set n=1 ) else ( set /a n+=1 )
复制代码

作者: qixiaobin0715    时间: 2021-5-21 10:33

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in (*.jpg) do (
  4.     set /a n+=1
  5.     set /a "m=(n-1)/4+1"
  6.     if not exist !m! md !m!
  7.     move "%%a" "!m!"
  8. )
  9. pause
复制代码

作者: 朱科技    时间: 2021-6-6 16:03

回复 3# qixiaobin0715


    按排列顺序能行吗,不按扩展名
作者: 朱科技    时间: 2021-6-6 16:06

回复 2# xp3000


   如果我的文件名是1,2,3,4,5,6,7,8,9,10,提取4个一组时排列时候就错位了,成了(1,10,11,12),我想1,2,3,4这样提取4个一组
作者: went    时间: 2021-6-6 17:21

回复 9# 朱科技
  1. powershell -c "Get-ChildItem *.jpg | Group-Object {[System.Math]::Ceiling($_.BaseName/4)} | foreach{$f = $_.Name;$_.Group | foreach {[void][System.IO.Directory]::CreateDirectory($f);$_.MoveTo($f + '\' + $_.Name)}}"
复制代码

作者: xp3000    时间: 2021-6-6 18:38

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,* delims=:" %%a in ('dir /b/a-d/on *.jpg^|findstr /n .') do (set x=%%a)
  3. set m=1
  4. for /l %%i in (1 1 !x!) do (
  5. set/a "n+=1,1/(4*m-n+1)" 2>nul||(set/am+=1)
  6. md !m!&move "%%i.jpg" .\!m!\
  7. )
  8. pause
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2