Board logo

标题: [已解决]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

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. powershell -NoProfile -ExecutionPolicy bypass ^
  7.     $n=1;^
  8.     $str='444';^
  9.     dir -r^|?{($_ -is [System.IO.FileInfo]) -and ($_.Extension -eq '.txt')}^|%%{^
  10.         write-host $_.FullName;^
  11.         $text=[IO.File]::ReadAllLines($_.FullName,[Text.Encoding]::Default);^
  12.         if($text.Count -ge $n){^
  13.             $text[$n-1]+=(\"`r`n\"+$str);^
  14.             [IO.File]::WriteAllLines($_.FullName, $text, [Text.Encoding]::Default);^
  15.         };^
  16.     };^
  17.     write-host '%info%' -ForegroundColor green;
  18. pause
复制代码

作者: amwfjhh    时间: 2019-5-18 15:22

本帖最后由 amwfjhh 于 2019-5-18 15:24 编辑
  1. @echo off
  2. set /p "strInsert=Please input the insert content:"
  3. for /f "tokens=*" %%i in ('dir /s/b/a-d *.txt') do (
  4. call :_Insert %%~si
  5. )
  6. pause
  7. goto :EOF
  8. :_Insert
  9. (
  10. set /p=<nul>$.tmp
  11. echo,Current file : %1
  12. for /f "tokens=1,* delims=:" %%a in ('findstr /n .* %1') do (
  13. echo,%%b>>$.tmp
  14. if "%%a" equ "1" (
  15. echo,%strInsert%>>$.tmp
  16. )
  17. )
  18. type $.tmp
  19. move /y $.tmp %1
  20. echo,&echo,
  21. goto :EOF
  22. )
复制代码

作者: 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