标题: [文件操作] 批处理怎么把几千个文件夹每10文件夹移动分组? [打印本页]
作者: myacg 时间: 2022-10-10 15:58 标题: 批处理怎么把几千个文件夹每10文件夹移动分组?
有几百个文件夹想归类,想要按顺序10个文件夹为一组移动到一个新的文件夹里,并取名“归类_01”、“归类_02”、“归类_03”...以此类推。请问该怎么写bat?
作者: qixiaobin0715 时间: 2022-10-10 16:42
将bat保存为ANSI编码:- @echo off
- set n=10
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /ad') do (
- set /a m=n/10
- if !m! neq !x! (
- set y=00!m!
- set Folder=归类_!y:~-2!
- md !Folder!
- )
- move "%%i" "!Folder!"
- set /a n+=1
- set /a x=m
- )
- pause
复制代码
代码未测试。
作者: myacg 时间: 2022-10-11 09:23
回复 2# qixiaobin0715
't' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'tlocal' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
'r' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
系统找不到指定的文件。
请按任意键继续. . .
作者: xp3000 时间: 2022-10-11 09:30
本帖最后由 xp3000 于 2022-10-11 10:41 编辑
两位数只能99个文件夹,其他不处理了?- @echo off&setlocal enabledelayedexpansion
- set m=1
- (for %%a in (*.txt) do (
- set/a "n+=1,1/(10*m-n+1)"||(set/am+=1)
- md !m!&move "%%a" .\!m!\
- ))2>nul
复制代码
论坛代码,txt文件自行修改自己要处理的文件类型
作者: qixiaobin0715 时间: 2022-10-11 09:33
应当不会出现这样的问题啊,代码不要手打直接复制看看。
作者: xp3000 时间: 2022-10-11 10:24
本帖最后由 xp3000 于 2022-10-11 11:22 编辑
- @echo off&setlocal enabledelayedexpansion
- set m=1
- (for %%a in (*.txt) do (
- set/a "n+=1,1/(10*m-n+1)"||(set/am+=1)
- if !m! lss 100 (set "x=0!m!" & set x=!x:~-2!) else (set "x=00!m!" & set x=!x:~-3!)
- md 归类_!x!&move "%%a" .\归类_!x!\
- ))2>nul
复制代码
要是不处理set "x=00!m!" & set x=!x:~-3!替换为exit /b- @echo off&setlocal enabledelayedexpansion
- set m=1
- (@for /f "delims=" %%a in ('dir /b/a-d/on "*.txt"') do (
- set/a "n+=1,1/(1*m-n+1)"||(set/am+=1)
- if !m! geq 1000 (set "x=!m!") else (
- if !m! lss 100 (set "x=00!m!" & set x=!x:~-2!) else (set "x=00!m!" & set x=!x:~-3!)
- )
- md 归类_!x!&move "%%a" .\归类_!x!\
- ))2>nul
复制代码
再加个4位数以上的分组
作者: pd1 时间: 2022-10-11 10:33
- <# :
- @echo off
- powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
- pause
- #>
- $a=Get-ChildItem |?{$_ -is [System.IO.DirectoryInfo]}
- $num=($a.Length-$a.Length%10)/10+1
- 1..$num |foreach {md 归类_$_}
- 0..($a.Length-1) |foreach {$b=($_-$_%10)/10+1;move $a[$_].FullName 归类_$b }
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |