标题: [文本处理] 【已解决】批处理如何在txt某行前和后添加字符 [打印本页]
作者: wzf1024 时间: 2015-11-28 18:51 标题: 【已解决】批处理如何在txt某行前和后添加字符
本帖最后由 wzf1024 于 2016-2-19 20:39 编辑
请教大侠:
有很多txt文本,需要在某行前或后插入字符,不知如何实现?
比如一个txt:
------------------
1
2
3
4
------------------
我想在第三行前加aaa,行尾加bbb,就成了这样:
-----------------------
1
2
aaa3bbb
4
-----------------------
现有一个代码,但只能操作第一行:
----------------
@echo off
set "行首=$$$$"
set "行尾=####"
for %%a in (*.txt) do (
set ".="
(for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%%a"') do (
if defined . (
echo,%%b
) else (
if not "%%b"=="" (
set .=.
echo %行首%%%b%行尾%
)
)
))>$
move $ "%%a"
)
-------------
大侠能改成任意行都能操作吗,就是有变量接受输入的行数?
作者: DAIC 时间: 2015-11-28 18:53
请举例说明
作者: 尘丶 时间: 2015-11-28 19:22
本帖最后由 尘丶 于 2015-11-28 19:25 编辑
- @echo off&setlocal enabledelayedexpansion
- set n=3
- ((for /l %%a in (1.txt) do set /p n%%a)<1.txt
- for /f "delims=" %%a in (1.txt) do (
- set /a k+=1
- if not !k!==!n! (echo;%%a) else (echo;aaa%%abbb)
- )
- )>>$
- move $ 1.txt
- pause
复制代码
3是行数
作者: DAIC 时间: 2015-11-28 19:46
- @echo off
- setlocal enabledelayedexpansion
- REM 设置在第几行插入
- set "Line=3"
- REM 设置行首
- set "Prefix=BAT"
- REM 设置行尾
- set "Suffix=VBS"
-
- for %%a in (*.txt) do (
- (for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%%a"') do (
- if %%i equ !Line! (
- echo,%Prefix%%%j%Suffix%
- ) else (
- echo,%%j
- )
- ))>"%%a.tmp"
- move "%%a.tmp" "%%a"
- )
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |