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

[文本处理] [已解决]求助批处理怎么生成大小超过8k的文本?

[复制链接]
发表于 2024-11-8 14:25:39 | 显示全部楼层 |阅读模式
本帖最后由 13545876873 于 2024-11-10 10:10 编辑

我的解决办法比较蠢哈,都是在论坛上找的代码,组合使用 : ,麻烦大哥帮忙优化一下哈

1.把内容用excel函数分成两个小于8K的内容,然后生成两个txt文档,命名例如:lishi-1、lishi-2
2.用批处理把这两个txt文档放到同名文件夹(lishi)
  1. @echo off
  2. cd /d "C:\Users\Administrator\Desktop\测试 "
  3. for /f "tokens=1* delims=-" %%a in ('dir /b /a-d *.txt') do (  
  4.     move "%%a-%%b" "C:\Users\Administrator\Desktop\测试 \%%a"
  5. )
  6. pau
复制代码
3.把文件夹里的两个txt文档合并成一个,
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /s /ad') do (
  4.     echo 正在处理文件夹 %%a
  5.     pushd "%%a"
  6.   type *.txt>temp
  7. ren temp out.txt

  8. popd
  9. )
复制代码
4.合并的txt文档名称都是OUT,在合并的txt文档前面加上相应的文件夹名
  1. @echo off
  2. for /d %%i in (*) do (
  3.     pushd "%%i"
  4.     for /f "delims=" %%j in ('dir /b /a-d *.txt') do (
  5.         ren "%%j" "%%i_%%j"
  6.     )
  7.     popd
  8. )
复制代码
5.再把所有子文件夹里的txt文档,都剪切出来
  1. @echo off
  2. set var=E:\test
  3. for /r /d %%a in (*) do move "%%a\*txt" "%var%"
  4. pause
复制代码
6.把带有out字符的txt文档放一起,用更名器把out都删掉,剩下的就是我要的了:loveliness:

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-11-8 15:28:58 | 显示全部楼层
回复 1# 13545876873

批处限制每个变量‘长度’至多为8k字符量...
楼主所谓超过8k的源数据来自什么格式文件?要将其写入什么格式文件?

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-11-8 16:06:10 | 显示全部楼层
回复 2# aloha20200628


    感谢大哥的回复哈,这个问题我已经解决了。
我把一个大数据分成两个小于8k的数据,生成两个txt文件,然后再把两个文本合并成一个大的。。。。
发表于 2024-11-9 20:41:17 | 显示全部楼层
回复 3# 13545876873


    代码发出来看看是否可以进一步优化?
 楼主| 发表于 2024-11-10 10:08:32 | 显示全部楼层
回复 4# Batcher

大哥,一楼内容已修改,麻烦帮忙优化一下哈
发表于 2024-11-10 11:41:40 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-11-10 13:45 编辑

回复 1# 13545876873

以下代码运行结果》将当前目录中每个子目录里的全部*.txt文件合并为一个txt文件,且用其所在目录名命名,再移动至 e:\test 目录中...

  1. @echo off &for /r /d %%d in (*) do (
  2.         pushd "%%d"
  3.         type *.txt>"e:\test\%%~nd.txt"
  4.         popd
  5. ) 2>nul
  6. pause&exit/b
复制代码

评分

参与人数 1技术 +1 收起 理由
13545876873 + 1 乐于助人

查看全部评分

 楼主| 发表于 2024-11-10 12:16:01 | 显示全部楼层
回复 6# aloha20200628

大哥,运行结果有点问题哈:两个7k大小的文档,合并成了一个25k的文档,合并了两次。。。
发表于 2024-11-10 13:46:00 | 显示全部楼层
回复 7# 13545876873

6楼代码已订正,再试试吧...
 楼主| 发表于 2024-11-10 15:27:38 | 显示全部楼层
回复 8# aloha20200628
运行结果很好,没问题了哈,感谢大哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 16:06 , Processed in 0.021245 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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