标题: [文本处理] [已解决]文本替换请大神帮忙修改下批处理代码 [打印本页]
作者: 786021512 时间: 2018-12-3 13:59 标题: [已解决]文本替换请大神帮忙修改下批处理代码
首先感谢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
作者: 786021512 时间: 2018-12-3 14:00
本帖最后由 786021512 于 2018-12-3 14:01 编辑
改动后的代码如下- @echo off &cd/d "%~dp0"
- setlocal enabledelayedexpansion
- for /f "tokens=*" %%m in ('dir /b *.src') do (
- for /f "delims= eol=" %%a in ('type "*%%m"') do (
- echo %%a>tmp
- findstr /i "Mtot" tmp>nul && (
- for /f "tokens=1,2* delims=," %%i in (tmp) do (
- set "str=%%i"
- set "n1=!str:~10,3!"
- set "n2=!str:~15,4!"
- echo %%i,!n1!!n2!,%%k
- )
- )||echo %%a
- ))>%%m
- del /q tmp
- )
- pause
复制代码
作者: 786021512 时间: 2018-12-3 14:03
现在还是想吧文本的空行保留并且,能够自动的对目录下含子目录的程序进行改动
谢谢各位大神
作者: xczxczxcz 时间: 2018-12-3 14:39
回复 3# 786021512
我那个是针对 bathome 写的,这样子改很容易出问题的。
作者: WHY 时间: 2018-12-3 21:52
回复 3# 786021512
以顶楼的数据为例,你希望修改哪一行,或者修改哪几行?修改成什么样子?
作者: 786021512 时间: 2018-12-3 22:39
回复 5# WHY
就是输出的时候保留空行,你看我2楼的代码,输出的时候空行被替代了
作者: WHY 时间: 2018-12-3 23:32
本帖最后由 WHY 于 2018-12-4 11:14 编辑
- @echo off
- setlocal enabledelayedexpansion
- for /r %%m in (*.src) do (
- for /f "tokens=1,2* delims=," %%i in ('findstr /n .* "%%m"') do (
- set "str=%%i"
- if "!str:Mtot=!" NEQ "!str!" (
- set "str=!str:*:=!"
- echo;!str!,!str:~10,3!!str:~15,4!,%%k
- ) else if "%%j" == "" (
- echo;!str:*:=!
- ) else if "%%k" == "" (
- echo;!str:*:=!,%%j
- ) else (
- echo;!str:*:=!,%%j,%%k
- )
- )
- )
-
- pause
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |