标题: [文件操作] 【已解决】批处理把5000个文件拆为4个为一组,放进序号增序新文件夹 [打印本页]
作者: 朱科技 时间: 2021-6-7 14:27 标题: 【已解决】批处理把5000个文件拆为4个为一组,放进序号增序新文件夹
本帖最后由 朱科技 于 2022-12-28 10:41 编辑
5000个文件拆为4个为一组,每组放进一个新的文件夹以序号增序命名,原来有提问过
数据排列示例:
1,2,4,6,6副本,7-副本,8,10
原来提取出现了问题:
错误了提取1,2,4 (或者错误的提取1,10,11,12)
达到结果“按排列顺序”提取1,2,4,6
作者: Batcher 时间: 2021-6-7 21:27
回复 1# 朱科技
请把上个帖子的链接发出来看看,以便修改之前的代码。
作者: qixiaobin0715 时间: 2021-6-7 21:33
假设源文件在C:\Users\Administrator\Desktop\test;批处理文件可在任意地方。
不知是不是这么个意思,效率应当不是太高。未测试:- @echo off
- set "folder=C:\Users\Administrator\Desktop\test"
- set m=10000
- cd /d "%folder%"
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d ^|findstr /ev bat') do (
- set "var=%%i"
- for /f "tokens=* delims=0123456789" %%j in ("%%i") do (
- set /a "n=m+!var:%%j=!"
- set "-!n!=%%i"
- )
- )
- for /f "tokens=1* delims==" %%a in ('set -') do (
- set /a x+=1
- set /a "y=(x-1)/4+1"
- if not exist !y! md !y!
- move "%%b" "!y!"
- )
- pause
复制代码
作者: newswan 时间: 2021-6-8 11:23
文件名,前面部分是数字,数字按 [int] 排序,其他按字符排序
类似 [version]- get-childitem -name | Sort-Object -Property { [version] $_ }
复制代码
作者: WHY 时间: 2021-6-8 20:53
Test.bat- @echo off & setlocal enabledelayedexpansion
- if "%~1" NEQ "Arg" (
- set n=0
- for /f "tokens=1*" %%i in ('"%~f0" Arg ^| sort') do (
- set /a m=n/4+1, n+=1
- md !m! 2>nul
- move "%%j" !m!\
- )
- pause & exit
- ) else (
- for %%i in ( 0*,1*,2*,3*,4*,5*,6*,7*,8*,9* ) do (
- set "s=%%i"
- for /f "tokens=*delims=0123456789" %%j in ("%%i") do (
- set "s=00000!s:%%j=!"
- )
- echo;!s:~-5! %%i
- )
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |