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

[文本处理] [已解决]文本替换请大神帮忙修改下批处理代码

[复制链接]
发表于 2018-12-3 13:59:28 | 显示全部楼层 |阅读模式
首先感谢Batcher&xczxczxcz两位大神还有以及其他
由于我测试的程序太多在后面我又发现了一些问题
出现了一下程序如
&mind Lbathomedosbat
DEF  Lbathomedosbat()
;***********************************************************
;*
;*         Created 01/10/2012 by WWW
;*
;***********************************************************

  DELAY FOR FALSE
  
  Default()
  DELAY FOR FALSE

  SetENABLE(False)
  CSTART(TRUE,1)
  MovInitAll()

  
END
LOACAL DEF SchDefault()
  AutoSTART(Gun);

   END
  
DEF Weld_1()
  InitTool(Gun)
  MovSetAcc(100)
  SovA (startGun,Exact,100)
  SovP (ToP740WP8932_20,Coarse,100,Gun,Car)
  SovP (ToP740WP8932_10,Coarse,100,Gun,Car)
  MtotP (P740WP8932,6666666,100,Opn,Gun,Car)
  MtotP (P740WP8934,6666666,100,Opn,Gun,Car)
  MtotP (P740WP9062,6666666,100,Opn,Gun,Car)
  SovP (ToP740WP6190_10,Coarse,100,Gun,Car)
  MtotL (P740WP8796,6666666,100,Opn,Gun,Car,LOAD)
  MtotL (P740WP8794,6666666,100,Opn,Gun,Car,LOAD)
  MtotL (P740WP8792,6666666,100,Opn,Gun,Car,LOAD)
  SovP (ToP740WP6186_10,Coarse,100,Gun,Car)
  SovA (startGun,Exact,100)
   END
我拿了xczxczxcz代码改了改还是会有些问题如图

现在会自动的吧空格消掉
我这电脑用不了POWERSHELL
 楼主| 发表于 2018-12-3 14:00:16 | 显示全部楼层
本帖最后由 786021512 于 2018-12-3 14:01 编辑

改动后的代码如下
  1. @echo off &cd/d "%~dp0"
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=*" %%m in ('dir /b *.src') do (
  4.                  for /f "delims= eol=" %%a in ('type "*%%m"') do (
  5.                                 echo %%a>tmp
  6.                                 findstr /i "Mtot" tmp>nul && (
  7.                                                 for /f "tokens=1,2* delims=," %%i in (tmp) do (
  8.                                                                 set "str=%%i"
  9.                                                                 set "n1=!str:~10,3!"
  10.                                                                 set "n2=!str:~15,4!"
  11.                                                                 echo %%i,!n1!!n2!,%%k
  12.                                                 )
  13.                                 )||echo %%a
  14.                 ))>%%m
  15.                 del /q tmp
  16.                 )
  17. pause
复制代码
 楼主| 发表于 2018-12-3 14:03:21 | 显示全部楼层
现在还是想吧文本的空行保留并且,能够自动的对目录下含子目录的程序进行改动
谢谢各位大神
发表于 2018-12-3 14:39:04 | 显示全部楼层
回复 3# 786021512

我那个是针对 bathome 写的,这样子改很容易出问题的。
发表于 2018-12-3 21:52:31 | 显示全部楼层
回复 3# 786021512


    以顶楼的数据为例,你希望修改哪一行,或者修改哪几行?修改成什么样子?
 楼主| 发表于 2018-12-3 22:39:44 | 显示全部楼层
回复 5# WHY


    就是输出的时候保留空行,你看我2楼的代码,输出的时候空行被替代了
发表于 2018-12-3 23:32:45 | 显示全部楼层
本帖最后由 WHY 于 2018-12-4 11:14 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /r %%m in (*.src) do (
  4.     for /f "tokens=1,2* delims=," %%i in ('findstr /n .* "%%m"') do (
  5.         set "str=%%i"
  6.         if "!str:Mtot=!" NEQ "!str!" (
  7.             set "str=!str:*:=!"
  8.             echo;!str!,!str:~10,3!!str:~15,4!,%%k
  9.         ) else if "%%j" == "" (
  10.             echo;!str:*:=!
  11.         ) else if "%%k" == "" (
  12.             echo;!str:*:=!,%%j
  13.         ) else (
  14.             echo;!str:*:=!,%%j,%%k
  15.         )
  16.     )
  17. )

  18. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
786021512 + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 01:20 , Processed in 0.031965 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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