标题: [已解决]dos如何在同级及子集所有txt文件的第一行后插入一行内容? [打印本页]
作者: O.0 时间: 2019-5-18 09:10 标题: [已解决]dos如何在同级及子集所有txt文件的第一行后插入一行内容?
本帖最后由 O.0 于 2019-5-18 19:44 编辑
例:
源文件:
111
222
333
修改后:
111
444
222
333
作者: zaqmlp 时间: 2019-5-18 11:53
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- powershell -NoProfile -ExecutionPolicy bypass ^
- $n=1;^
- $str='444';^
- dir -r^|?{($_ -is [System.IO.FileInfo]) -and ($_.Extension -eq '.txt')}^|%%{^
- write-host $_.FullName;^
- $text=[IO.File]::ReadAllLines($_.FullName,[Text.Encoding]::Default);^
- if($text.Count -ge $n){^
- $text[$n-1]+=(\"`r`n\"+$str);^
- [IO.File]::WriteAllLines($_.FullName, $text, [Text.Encoding]::Default);^
- };^
- };^
- write-host '%info%' -ForegroundColor green;
- pause
复制代码
作者: amwfjhh 时间: 2019-5-18 15:22
本帖最后由 amwfjhh 于 2019-5-18 15:24 编辑
- @echo off
-
- set /p "strInsert=Please input the insert content:"
-
- for /f "tokens=*" %%i in ('dir /s/b/a-d *.txt') do (
- call :_Insert %%~si
- )
-
- pause
- goto :EOF
-
- :_Insert
- (
- set /p=<nul>$.tmp
- echo,Current file : %1
- for /f "tokens=1,* delims=:" %%a in ('findstr /n .* %1') do (
- echo,%%b>>$.tmp
- if "%%a" equ "1" (
- echo,%strInsert%>>$.tmp
- )
- )
- type $.tmp
- move /y $.tmp %1
- echo,&echo,
-
- goto :EOF
- )
复制代码
作者: O.0 时间: 2019-5-18 19:35
感谢两位大佬,已解决。
作者: O.0 时间: 2019-5-18 19:45
不好意思,新人帖子发错版块了。
作者: amwfjhh 时间: 2019-5-18 20:25
回复 5# O.0
无妨。小问题。
作者: zaqmlp 时间: 2019-5-19 06:04
嗯,要用心,注意提示
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |