标题: [文本处理] 批处理按照行数割文本文件怎么写? [打印本页]
作者: netdzb 时间: 2024-5-20 10:36 标题: 批处理按照行数割文本文件怎么写?
一个文本文件,需求按照30行进行分割成
原文件名-001.txt,
原文件名-002.txt
依次类推
虽然有split命令可以分割,但我还想知道
用批处理如何处理?
作者: Batcher 时间: 2024-5-20 10:51
回复 1# netdzb
http://bbs.bathome.net/thread-1181-1-1.html
http://bbs.bathome.net/thread-4440-1-1.html
http://bbs.bathome.net/thread-5380-1-1.html
http://bbs.bathome.net/thread-11549-1-1.html
http://bbs.bathome.net/thread-15394-1-1.html
http://bbs.bathome.net/thread-17363-1-1.html
http://bbs.bathome.net/thread-21506-1-1.html
http://bbs.bathome.net/thread-23199-1-1.html
http://bbs.bathome.net/thread-27116-1-1.html
作者: qixiaobin0715 时间: 2024-5-20 14:22
- @echo off
- set n=0
- set x=30
- set /a y=x-1
- set z=1000
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (test.txt) do (
- set /a m=n%%x
- set /a n+=1
- set str!m!=%%i
- if !m! equ %y% (
- set /a z+=1
- (for /l %%j in (0,1,%y%) do (
- echo,!str%%j!
- ))>test-!z:~-3!.txt
- )
- )
- set /a z+=1
- if !m! neq %y% (
- (for /l %%j in (0,1,!m!) do (
- echo,!str%%j!
- ))>test-!z:~-3!.txt
- )
复制代码
未经测试
作者: netdzb 时间: 2024-5-20 14:38
回复 3# qixiaobin0715
echo , 加个逗号是什么意思啊?
代码写的挺讲究啊,都考虑到30000行文本的分割了,谢谢噢!
作者: qixiaobin0715 时间: 2024-5-20 14:53
逗号空格是一个意思
作者: 77七 时间: 2024-5-20 17:10
回复 4# netdzb
批处理技术内幕:ECHO命令
作者: 77七 时间: 2024-5-20 17:27
- @echo off
- cd /d "%~dp0"
-
- set file=1.txt
- set l=30
- set _0=3
-
- set m=10000001
- for /f "delims=" %%i in ("%file%") do (
- for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
- setlocal enabledelayedexpansion
- for /f %%x in ("!m:~-%_0%!") do (
- endlocal
- >>"%%~ni-%%x%%~xi" echo=%%b
- )
- set /a n=%%a%%%l%,1/n 2>nul || set /a m+=10000001
- )
- )
- pause
复制代码
作者: 877 时间: 2024-5-20 18:21
回复 7# 77七
77七大佬,求助新帖期待您出手相助
作者: Five66 时间: 2024-5-20 18:37
分割的文件结尾会多一个换行符
编码全部gbk或ansi- @echo off
-
- set @file=test.txt
- set hangshu=30
- set shuliang=0
- set houzhuishuzi=1000
- set "houzhui=_!shuliang:~-3!"
-
- for %%a in ("%@file%") do set @newfile=%%~na&set @fileext=%%~xa
- for /f "usebackq delims=" %%i in (`findstr /n .* "%@file%"`) do (
- set "line=%%i"
- set /a shuliang=aaa/hangshu+houzhuishuzi+1
- set /a aaa+=1
- setlocal enabledelayedexpansion
- if not defined @%houzhui% (
- echo create file !@newfile!%houzhui%!@fileext!
- cd. >"!@newfile!%houzhui%!@fileext!"
- for %%z in ("@%houzhui%") do endlocal&set %%~z=1
- ) else (endlocal)
- setlocal enabledelayedexpansion
- (
- echo(!line:*:=!|| ^)?
- )>>"!@newfile!%houzhui%!@fileext!"
- endlocal
- )
- pause&exit/b
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |