标题: [文本处理] [已解决]批处理如何在文本的第五行开头加上特定字符批量加上可以实现吗? [打印本页]
作者: swanseabrian 时间: 2021-11-2 13:46 标题: [已解决]批处理如何在文本的第五行开头加上特定字符批量加上可以实现吗?
本帖最后由 swanseabrian 于 2021-11-2 22:30 编辑
有一批文本文件,想在第五行批量开头批量加上 特定字符,
例如
一个文件夹里有100个文本文件
每个文本文件 是下面这个的
1111
2222
3333
4444
5555
6666
在第五行开头加入234也就是变成下面这样
1111
2222
3333
4444
2345555
6666
[这个要怎么操作呢
谢谢
作者: qixiaobin0715 时间: 2021-11-2 14:12
未测试:- @echo off
- set var=234
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- ((for /l %%a in (1,1,5) do (
- set /p str=
- if %%a==5 (
- echo,%var%!str!
- ) else (
- echo,!str!
- )
- ))<"%%i"
- more +5 "%%i")>"new_%%i"
- )
- pause
复制代码
作者: Batcher 时间: 2021-11-2 15:56
回复 1# swanseabrian
http://bcn.bathome.net/s/tool/index.html?key=sed复制代码
作者: qixiaobin0715 时间: 2021-11-2 16:23
搞这么复杂主要是试试使用命令more,看看好使不。以前很少使用。
作者: swanseabrian 时间: 2021-11-2 19:36
回复 4# qixiaobin0715
为什么不是在原来文本上改呢,不生成新的可以吗
这个sed的怎么用, 要加环境变量?
作者: qixiaobin0715 时间: 2021-11-2 20:06
我想各种程序或脚本设计是基本上都是在源文件的副本上进行修改,这样可以避免修改文件产生错误,造成不可挽回的损失。当然也可以通过回写覆盖源文件。也可以把修改后的文件写入新的文件夹并保持原文件名。在4楼代码for循环之前新建文件夹:复制代码
将代码13行后面部分改为:复制代码
如果修改无误,手动或用del命令删除源文件即可。
作者: Batcher 时间: 2021-11-2 21:46
回复 5# swanseabrian
或者把 sed.exe 放到 C:\Windows\System32\ 文件夹下面也行
作者: swanseabrian 时间: 2021-11-2 22:14
回复 6# qixiaobin0715
那你不是把文件名都改了
作者: swanseabrian 时间: 2021-11-2 22:14
回复 7# Batcher
好的
作者: qixiaobin0715 时间: 2021-11-3 06:37
NewFolder\%%i中的NewFolder\是路径而非文件名的一部分。实际上可以将修改后的文件保存在你想要的任何地方,比如可以:md C:\abc,当然后面的代码也相应的修改为C:\abc\%%i
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |