[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]如何用批处理在文本中添加内容?

本帖最后由 czvde 于 2022-3-16 17:21 编辑

“a.txt”内容:
4569
二一二零
8798
0123456零零一一
一三二=+123

“b.txt”内容:
456一一一一一
4587779879零零一一123579sf的
98746541819
二一二零1125646464


bat执行效果:
“a.txt”内容:
4569
二一二零
a
8798
0123456a
零零一一
一三二=+123

“b.txt”内容:
456一一一一一
4587779879b
零零一一123579sf的
98746541819
二一二零
b1125646464

已解决!!

  1. #@&cls&powershell -c "gc '%~0'|out-string|iex"&pause&exit /b
  2. dir -filter *.txt|%{
  3.     $txt=@()
  4.     $name=$_.basename
  5.     gc $_|%{
  6.         switch -regex($_){
  7.            "零零一一"       {
  8.                $idx=$_.indexof($matches[0])
  9.                $txt+=$_.substring(0,$idx)+$name
  10.                $txt+=$_.substring($idx)
  11.            }
  12.            "二一二零"       {
  13.                $idx=$_.indexof($matches[0])
  14.                $txt+=$_.substring(0,$idx)+$matches[0]
  15.                $txt+=$name+$_.substring($idx+4)
  16.            }
  17.            default          {$txt+=$_}
  18.         }
  19.     }
  20.     sc $_ $txt
  21. }
复制代码
跟txt文本放同一层目录,测试前先备份txt。
1

评分人数

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set LF=^
  4. for /f %%i in ('copy /z "%~f0" nul') do set "CRLF=%%i!LF!"
  5. for %%i in (*.txt) do (
  6.     (for /f "delims=" %%j in ('type "%%i"') do (
  7.         set "s=%%j"
  8.         for %%k in ("!CRLF!") do (
  9.             set "s=!s:二一二零=二一二零%%~k%%~ni!"
  10.             set "s=!s:零零一一=%%~ni%%~k零零一一!"
  11.         )
  12.         echo;!s!
  13.     )) > "%%i.Log"
  14. )
  15. pause
复制代码

TOP

返回列表