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

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

怎么用bat批量处理在某指定字符后面加个0或者其他字符
例如文本里面,有123这几个字符
处理前
123 a
1234 b
123456 c
1564fd
处理后结果
123 a0
1234 b0
123456 c0
1564fd
没有123这个几个字符的话,就不处理,保留原样

有哪位大神帮帮忙吗.感谢!!

本帖最后由 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"
复制代码
用笨方法实现的,应该还有简单的方法,不过对于同为新人的我来说不会

TOP

  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
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

冒个泡;
  1. (gc 0.txt) -replace '(?<n>^123.*$)','${n}0'|sc 0.txt
复制代码
偶在整 24 节气的 交节时刻 程序。 看了网上的 JAVA程序 在计算太阳黄金交角总是有错误。不知哪位大神有资料?

TOP

回复 4# Batcher


    之前没想到还可以用截取替换的方法,又学了一招

TOP

返回列表