找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 21738|回复: 9

[文件操作] [已解决]批处理怎样把文本文件合并到一个文件夹?

[复制链接]
发表于 2021-10-12 12:55:42 | 显示全部楼层 |阅读模式
本帖最后由 swanseabrian 于 2021-10-28 11:51 编辑

在一个文件夹里面1000个txt文本,那么通过命令设置两个txt文本归一个文件夹。那么总共有500个文件夹

可不可以自己设置合并的个数,

也就是设置成3个文本合并到一个文件夹,

或者4,5,6个合并到一个文件夹呢
发表于 2021-10-12 13:25:25 | 显示全部楼层
回复 1# swanseabrian
牵涉到算法问题,是这意思吗:
  1. @echo off
  2. ::设置合并文本数量
  3. set a=2
  4. setlocal enabledelayedexpansion
  5. for %%a in (*.txt) do (
  6.     set /a n+=1
  7.     set /a m=(n+a-1^)/a
  8.     if not exist 分组!m! md 分组!m!
  9.     copy "%%a" "分组!m!"
  10. )
  11. pause
复制代码
 楼主| 发表于 2021-10-12 19:36:36 | 显示全部楼层
回复 2# qixiaobin0715


    请问这是啥意思
m=(n+a-1^)/a
看 不懂呢
发表于 2021-10-12 22:02:34 | 显示全部楼层
回复 1# swanseabrian


我来一个不需要算法的,你试试能否看懂:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. REM 设置合并文本数量
  5. set x=2
  6. set FolderNum=1001
  7. set FileNum=0
  8. for %%i in (*.txt) do (
  9.     if not exist "!FolderNum!" (
  10.         md "!FolderNum!"
  11.     )
  12.     move /y "%%i" "!FolderNum!"
  13.     set /a FileNum+=1
  14.     if !FileNum! equ !x! (
  15.         set /a FolderNum+=1
  16.         set FileNum=0
  17.     )
  18. )
复制代码
发表于 2021-10-13 09:14:42 | 显示全部楼层
回复 3# swanseabrian
不知你是指表达式本身,还是最后的数值?
 楼主| 发表于 2021-10-13 10:43:31 | 显示全部楼层
回复 4# Batcher


    你这个可以看懂,不过用算法的,真简单,看着
如何 设置文件夹,从001-200呢,就是从001开始,计数
 楼主| 发表于 2021-10-13 10:45:53 | 显示全部楼层
回复 5# qixiaobin0715


    a-1^
这个是啥
发表于 2021-10-13 10:55:30 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-10-13 11:10 编辑

回复 7# swanseabrian
有括号的复合语句中变量设置时,含有括号的需转义,否则会出错。
发表于 2021-10-13 12:21:30 | 显示全部楼层
本帖最后由 qixiaobin0715 于 2021-10-13 12:30 编辑

上面的情况可用下面两组代码试试:
示范1
  1. @echo off
  2. echo,()
  3. (
  4. echo,()
  5. )
  6. pause
复制代码
括号外没问题。
————————————————
示范2
  1. @echo off
  2. (
  3. echo,(^)
  4. )
  5. pause
复制代码
发表于 2021-10-13 12:38:34 | 显示全部楼层
回复 6# swanseabrian
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "%~dp0"
  4. REM 设置合并文本数量
  5. set x=2
  6. set FolderNum=1001
  7. set FileNum=0
  8. for %%i in (*.txt) do (
  9.     if not exist "!FolderNum:~1!" (
  10.         md "!FolderNum:~1!"
  11.     )
  12.     move /y "%%i" "!FolderNum:~1!"
  13.     set /a FileNum+=1
  14.     if !FileNum! equ !x! (
  15.         set /a FolderNum+=1
  16.         set FileNum=0
  17.     )
  18. )
复制代码

评分

参与人数 1技术 +1 收起 理由
swanseabrian + 1 这个可以设置文件夹名字,还是这个好一些

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 03:30 , Processed in 0.032874 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表