标题: [文本处理] [已解决]批处理替换目录下所有文件指定行 [打印本页]
作者: 279491611 时间: 2019-6-26 11:17 标题: [已解决]批处理替换目录下所有文件指定行
本帖最后由 279491611 于 2019-6-26 13:13 编辑
求助各位帮忙,
批处理替换 目录下所有文件指定行 。例如 第5 行 替换为 两个空格加文件名。
作者: zaqmlp 时间: 2019-6-26 12:20
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- set n=5
- powershell -NoProfile -ExecutionPolicy bypass ^
- $files=@(dir^|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])});^
- for($i=0;$i -lt $files.length;$i++){^
- write-host $files[$i].Name;^
- $text=[IO.File]::ReadAllLines($files[$i].FullName,[Text.Encoding]::Default);^
- if($text.length -ge %n%){^
- $text[%n%-1]=((' '*2)+$files[$i].BaseName);^
- [IO.File]::WriteAllLines($files[$i].FullName, $text, [Text.Encoding]::Default);^
- };^
- };^
- write-host '%info%' -ForegroundColor green;
- pause
复制代码
作者: 279491611 时间: 2019-6-26 13:06
本帖最后由 279491611 于 2019-6-26 13:15 编辑
回复 2# zaqmlp
感谢你的帮助。!power shell 果然强大。!
作者: Batcher 时间: 2019-6-26 13:22
推荐试试 sed
http://bcn.bathome.net/s/tool/index.html?key=sed- @echo off
- for /f "delims=" %%i in ('dir /b /a-d *.txt') do (
- sed -i "5s/.*/ %%i/" "%%i"
- )
复制代码
作者: zaqmlp 时间: 2019-6-26 13:57
回复 3# 279491611
口头说没什么用,赞助实际点
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |