Board logo

标题: [文件操作] 批处理怎样把100个txt文档平均分配到100个文件夹里? [打印本页]

作者: 5988911    时间: 2022-3-10 20:18     标题: 批处理怎样把100个txt文档平均分配到100个文件夹里?

提问: 举例 A文件夹下有100个不同名字的TXT文本文档,我需要把每个文档各放到不同的文件夹里 放完后,文件夹名字自动改为数字,数字序号从1开始到100(有几个文档就自动到文件夹几号),文档放的顺序无所谓,可以最后那个文档或者中间那个文档放在文件夹1里都可以,
最终目标就是把100个文本文档平均分配到100个文件夹里,并且文件夹名字自动改为1,2,3,4,---100   

或者手里有N个txt文档,现在需要把每个文档挨个复制到不同的新文件夹里,复制完,文件夹名字自动改成1,2,3,4,到N。 每个文件夹只允许存在一个TXT文档
求会的大佬发个BAT的代码 小弟 感激不尽!
作者: went    时间: 2022-3-10 20:30

test.bat
ansi编码
  1. @echo off & cd /d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. REM 文件夹名称或路径
  4. set "folder=A"
  5. set /a "n=1"
  6. for %%i in ("%folder%\*.txt") do (
  7. mkdir "%folder%\!n!" >nul 2>nul
  8. move "%%~i" "%folder%\!n!\"
  9. set /a "n+=1"
  10. )
  11. pause&exit
复制代码

作者: Batcher    时间: 2022-3-10 21:07

回复 1# 5988911


test.bat 放在A文件夹下执行
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. set "n=0"
  5. for %%i in (*.txt) do (
  6.     set /a n+=1
  7.     md "!n!"
  8.     move /y "%%i" "!n!"
  9. )
复制代码

作者: 5988911    时间: 2022-3-10 22:06

回复 3# Batcher


    谢谢大佬版主,你的太牛逼了
另外不好意思在求一个BAT代码
需求:把当前根目录下的所有文件夹包括子文件夹内的TXT文本文档的内容合并到1个新的文本文档里,每个内容需要自动换行
打比方E盘BOOK文件夹里有文本文档A,内容为“我爱你”
               BOOK文件夹里有子文件夹SAFE,SAFE里有文本文档B,内容为 “我要娶你”
               SAFE文件夹里有子文件夹LOVER,LOVER里有文本文档C,内容为“嫁给我好吗”
最终需求为把ABC3个文本文档的内容合并,并保存到D盘的KISS文件夹下,
合并的文本文档内容为,第一行,我爱你;   第二行,我要娶你;   第三行,嫁给我好吗
合并后的内容不能全部在第一行 变成“我爱你我要娶你嫁给我好吗”  这样
前天有个小哥帮忙做的, 没有把子文件夹里的文本内容也全部合并进去,合并后的后面的内容也没有自动换行,是首尾相连的
作者: Batcher    时间: 2022-3-11 09:41

回复 4# 5988911


    请把那个代码发出来我看看如何修改
作者: 5988911    时间: 2022-3-11 10:21

回复 5# Batcher


把当前根目录下的所有文件夹包括子文件夹内的TXT文本文档的内容合并到1个新的文本文档里,每个内容需要自动换行
打比方E盘BOOK文件夹里有文本文档A,内容为“我爱你”
               BOOK文件夹里有子文件夹SAFE,SAFE里有文本文档B,内容为 “我要娶你”
               SAFE文件夹里有子文件夹LOVER,LOVER里有文本文档C,内容为“嫁给我好吗”
最终需求为把ABC3个文本文档的内容合并,并保存到D盘的KISS文件夹下,
合并的文本文档内容为,第一行,我爱你;   第二行,我要娶你;   第三行,嫁给我好吗
合并后的内容不能全部在第一行首尾相连

    @echo off
md D:\KISS\ 2>nul
del D:\KISS\D.txt 2>nul
for /f "tokens=*" %%i in ('dir /b /s E:\BOOK') do (
    if %%~xi==.txt (for /f "tokens=*" %%n in (%%i) do (echo %%n >>D:\KISS\D.txt))
)
pause




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