找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27624|回复: 5

[文本处理] 怎么用bat批量处理在某指定字符后面加个0或者其他字符

[复制链接]
发表于 2019-6-8 14:32:08 | 显示全部楼层 |阅读模式
怎么用bat批量处理在某指定字符后面加个0或者其他字符
例如文本里面,有123这几个字符
处理前
123 a
1234 b
123456 c
1564fd
处理后结果
123 a0
1234 b0
123456 c0
1564fd
没有123这个几个字符的话,就不处理,保留原样

有哪位大神帮帮忙吗.感谢!!
发表于 2019-6-8 16:19:51 | 显示全部楼层
本帖最后由 miqilaosu 于 2019-6-8 16:32 编辑
  1. echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=*" %%a in ('dir /a-d /b *.txt') do (

  4. for /f "delims=*" %%i in ('type "%%a"') do (
  5. set "var=%%i"
  6. echo !var! | findstr /i 123 && (
  7. set "var=!var!0"
  8. )
  9. echo !var!!>>"%%~na.bk"
  10. )
  11. move "%%~na.bk" "%%a"
复制代码
用笨方法实现的,应该还有简单的方法,不过对于同为新人的我来说不会
发表于 2019-6-8 19:00:03 | 显示全部楼层
  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. set "folder=结果"
  6. cd /d "%~dp0"
  7. md "%folder%" 2>nul
  8. powershell -NoProfile -ExecutionPolicy bypass ^
  9.     dir^|?{('.txt' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])}^|%%{^
  10.         write-host $_.Name;^
  11.         $text=[IO.File]::ReadAllLines($_.FullName,[Text.Encoding]::Default);^
  12.         for($i=0;$i -lt $text.count;$i++){^
  13.             if($text[$i].Contains('123')){$text[$i]=$text[$i]+'0';};^
  14.         };^
  15.         [IO.File]::WriteAllLines(('%folder%\'+$_.Name), $text, [Text.Encoding]::Default);^
  16.     };^
  17.     write-host '%info%' -ForegroundColor green;
  18. pause
复制代码
发表于 2019-6-10 14:19:33 | 显示全部楼层
回复 2# miqilaosu


这样可以提高执行效率:
1、重定向放到for循环外面
2、去掉 findstr 命令
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /a-d /b *.txt') do (
  4.     (for /f "delims=" %%i in ('type "%%a"') do (
  5.         set "var=%%i"
  6.         if "!var:123=!" neq "!var!" (
  7.             set "var=!var!0"
  8.         )
  9.         echo !var!!
  10.     ))>"%%~na.bk"
  11.     move "%%~na.bk" "%%a"
  12. )
复制代码
发表于 2019-6-10 14:42:25 | 显示全部楼层
冒个泡;
  1. (gc 0.txt) -replace '(?<n>^123.*$)','${n}0'|sc 0.txt
复制代码
偶在整 24 节气的 交节时刻 程序。 看了网上的 JAVA程序 在计算太阳黄金交角总是有错误。不知哪位大神有资料?
发表于 2019-6-10 14:48:14 | 显示全部楼层
回复 4# Batcher


    之前没想到还可以用截取替换的方法,又学了一招
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:54 , Processed in 0.020298 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表