中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 00:36
48,040 主题排行 / 350,125 发帖 / 今日 1 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 请问批处理可以按要求拆分多个文本文件吗
可打印版本  962 / 8
第1楼 88xi 发表于 2007-10-15 13:07
新手上路 发帖 2 积分 6
请问批处理可以按要求拆分多个文本文件吗
我想把一个文件夹下多个文本,按30行来拆分,并保存在指定的文件夹里,并用原文件名命名。
比如:文件夹里有a.txt、b.txt、c.txt....把他们按30行来分割,保存在d:\wj里,并命名为a1.txt、a2.txt、a3.txt....b1.txt、b2.txt...c1.txt、c2.txt....如何实现?
第2楼 lxmxn 发表于 2007-10-15 15:54
版主 发帖 4,938 积分 11,386
a.txt 按30行一个文件拆分为a1.txt、a2.txt、a3.txt ?
第3楼 88xi 发表于 2007-10-15 16:37
新手上路 发帖 2 积分 6
是的
第4楼 Auto 发表于 2007-12-25 20:10
初级用户 发帖 27 积分 64
我也想知道这个...
要是能按分章节拆分的话更好...
第5楼 zerocq 发表于 2007-12-25 20:57
中级用户 发帖 196 积分 458
Usage: split.exe ]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
PREFIX is `x'. With no INPUT, or when INPUT is -, read standard input.

-b, --bytes=SIZE put SIZE bytes per output file
-C, --line-bytes=SIZE put at most SIZE bytes of lines per output file
-l, --lines=NUMBER put NUMBER lines per output file
-NUMBER same as -l NUMBER
--verbose print a diagnostic to standard error just
before each output file is opened
--help display this help and exit
--version output version information and exit

SIZE may have a multiplier suffix: b for 512, k for 1K, m for 1 Meg.

Report bugs to <bug-textutils@gnu.org>.


附件无法上传.咋办
第6楼 HAT 发表于 2007-12-25 21:57
版主 发帖 5,017 积分 9,023
google搜索“UnxUtils”
里面有split
第7楼 terse 发表于 2007-12-25 22:07
银牌会员 发帖 946 积分 2,404
能满足否?

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b /a-d "*.txt" 2^>nul') do (
set id=1
set num=
for /f "tokens=1,* delims=:" %%a in ('findstr /n .* "%%i"') do (
set/A num+=1
echo/%%b>>"d:\wj\%%~ni!id!.txt"
if !num! GEQ 30 set/A id+=1&set num=
)
)
pause
第8楼 everest79 发表于 2007-12-25 22:10
金牌会员 发帖 1,127 积分 2,564
通过for计数输出会忽略空行,原来讨论过这个问题,好像没办法,否则代码太烦琐,过大文本太慢
第9楼 everest79 发表于 2007-12-25 22:55
金牌会员 发帖 1,127 积分 2,564
找到一个方法
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023