标题: [文本处理] 批处理怎样修改txt文件和还原txt文件? [打印本页]
作者: xonic 时间: 2014-7-14 10:12 标题: 批处理怎样修改txt文件和还原txt文件?
本帖最后由 xonic 于 2014-7-14 14:13 编辑
复制代码
求批处理处理上面txt文本,[打印设置]那里改成以下- [打印设置]
- 退纸=1
- 打印纸长度=153
- 序号X=61
- 序号Y=188
- 打印序号=1
- 日期X=61
- 日期Y=218
- 打印日期=1
- 时间一X=61
- 时间一Y=248
- 打印时间一=1
- 时间二X=61
- 时间二Y=278
- 打印时间二=1
- 车号X=61
- 车号Y=309
- 打印车号=1
- 总重X=61
- 总重Y=400
- 打印总重=1
- 皮重X=61
- 皮重Y=431
- 打印皮重=1
- 净重X=61
- 净重Y=458
- 打印净重=1
- 客户X=61
- 客户Y=36
- 打印客户=1
- 货物X=61
- 货物Y=339
- 打印货物=1
- 收费X=61
- 收费Y=371
- 打印收费=0
- 司秤员X=222
- 司秤员Y=54
- 打印司秤员=0
- 字体名称=宋体
- 字体大小=14
- 磅单份数=3
- 每份之间的间距=260
- 窗口X=155
- 窗口Y=62
- 窗口宽度=800
- 窗口高度=600
复制代码
再求批处理还远原来的[打印设置],求达人帮助
作者: xonic 时间: 2014-7-14 14:14
求好人出手相助
作者: DAIC 时间: 2014-7-14 14:15
准备3个文件
假设文件的名字叫做 设置.ini
设置_1.ini 内容如下:
[打印设置]
退纸=1
......
设置_2.ini 内容如下:
[打印设置]
退纸=0
......
准备2个bat脚本
修改.bat- copy /y "设置_1.ini" "设置.ini"
复制代码
还原.bat- copy /y "设置_2.ini" "设置.ini"
复制代码
作者: xonic 时间: 2014-7-14 17:17
回复 3# DAIC
这样做不可以,因为我的情况是,文本里面其他内容有的会随机变化,求帮助>_<
作者: DAIC 时间: 2014-7-14 17:43
回复 4# xonic
如果没有任何规律的话,脚本怎么写?
作者: xonic 时间: 2014-7-14 20:42
回复 5# DAIC
规律是最后那多行文字修改,前部分是不变的~~~
作者: DAIC 时间: 2014-7-14 21:12
回复 6# xonic
还是没有解释清楚为什么2楼那种方法不行啊
作者: terse 时间: 2014-7-15 00:31
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=:" %%i in ('findstr /ilnxc:"[打印设置]" a.txt') do set "n=%%i"
- (for /L %%i in (2,1,!n!) do (
- set s=
- set/ps=
- echo,!s!
- )
- type b.txt
- )<a.txt >"%temp%\$.t"
- >b.txt (echo [打印设置]&more +%n% a.txt)
- move "%temp%\$.t" a.txt >nul
- pausel
复制代码
作者: hlzj88 时间: 2014-7-15 07:36
也许楼主的表达是在打印设置的地方开始进行内容替换,打印后要替换回去。
借8楼代码,将11句改为d.txt
将你的修改内容存入c.txt- type d.txt>>a.txt
- type c.txt>>a.txt
复制代码
还原- del a.txt
- type d.txt>>a.txt
- type b.txt>>a.txt
复制代码
作者: xonic 时间: 2014-7-15 23:45
回复 9# hlzj88
好方法!!受教!!!
作者: terse 时间: 2014-7-16 01:00
回复 10# xonic
其实8楼代码再次运行也就还原了
作者: xonic 时间: 2014-7-16 08:25
回复 11# terse
~>_<~八楼的代码我运行后,文本没改变。。。。。什么原因??
作者: xonic 时间: 2014-7-16 08:32
回复 8# terse
八楼代码更改如下运行成功,无限感激!!!!
for /f "delims=:" %%i in ('findstr /i /l /n /x /c:"[打印设置]" a.txt') do set "n=%%i"
作者: xonic 时间: 2014-7-16 08:55
回复 8# terse
再次求教
批处理的最后能否实现以下功能:
显示更改文本后,“退纸=”那整行
pause;
作者: xonic 时间: 2014-7-16 09:23
自己动手解决(*^__^*) 嘻嘻……
@type Params.dll | (find "退纸=0") >目前打印格式.txt
@type 目前打印格式.txt
@type Params.dll | (find "退纸=1") >目前打印格式.txt
@type 目前打印格式.txt
pause;
作者: terse 时间: 2014-7-16 10:28
回复 15# xonic - findstr /ic:"退纸=" Params.dll
复制代码
作者: xonic 时间: 2014-7-17 15:17
回复 8# terse
您太厉害了,我花了一个上午才大概看明白一、二行。。。。。。~>_<~
作者: xonic 时间: 2014-7-17 19:30
回复 16# terse
学习了,好方法,谢谢您
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |