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

[文本处理] 批处理怎样修改txt文件和还原txt文件?

[复制链接]
发表于 2014-7-14 10:12:35 | 显示全部楼层 |阅读模式
本帖最后由 xonic 于 2014-7-14 14:13 编辑
  1. [操作员]
  2. Admin=1111
  3. 001=0

  4. [过秤参数]
  5. 串口号=COM5
  6. 稳定时间=2
  7. 过秤起点=10
  8. 视频格式=2
  9. 使用摄像=0
  10. 称重仪表=1
  11. 只运行本程序=0
  12. 图像大小=2
  13. 图像来源=0
  14. 重量显示字体名称=Arial
  15. 重量显示字体大小=110
  16. 使用固定序号=0
  17. 固定序号=0008
  18. 使用大显示=1
  19. 大显示端口=
  20. 大显示=0
  21. 负数显示零=0
  22. 司磅员可查=0
  23. 参数一=111
  24. 参数二=107
  25. 参数三=109
  26. 扣水显示=其它查询

  27. [其它设置]
  28. 退出关机=0
  29. 电话=联系电话:

  30. [收费设置]
  31. 收费方式=2
  32. 白天起始(时)=8
  33. 白天起始(分)=30
  34. 白天结束(时)=18
  35. 白天结束(分)=30
  36. 最低收费(白天)=5
  37. 普通收费(白天)=1
  38. 最高收费(白天)=1
  39. 最低收费(夜晚)=5
  40. 普通收费(夜晚)=1
  41. 最高收费(夜晚)=1
  42. 最低重量=5
  43. 普通重量=20
  44. 最高重量=50

  45. [序号]
  46. 日期=140526
  47. 序号=18

  48. [其它参数]
  49. 退出关机=0
  50. 自动调整宽度=1

  51. [打印设置]
  52. 退纸=0
  53. 打印纸长度=153
  54. 序号X=94
  55. 序号Y=22
  56. 打印序号=1
  57. 日期X=90
  58. 日期Y=52
  59. 打印日期=1
  60. 时间一X=93
  61. 时间一Y=86
  62. 打印时间一=1
  63. 时间二X=93
  64. 时间二Y=119
  65. 打印时间二=1
  66. 车号X=93
  67. 车号Y=148
  68. 打印车号=1
  69. 总重X=92
  70. 总重Y=240
  71. 打印总重=1
  72. 皮重X=93
  73. 皮重Y=268
  74. 打印皮重=1
  75. 净重X=92
  76. 净重Y=299
  77. 打印净重=1
  78. 客户X=248
  79. 客户Y=113
  80. 打印客户=0
  81. 货物X=93
  82. 货物Y=179
  83. 打印货物=1
  84. 收费X=94
  85. 收费Y=207
  86. 打印收费=1
  87. 司秤员X=222
  88. 司秤员Y=54
  89. 打印司秤员=0
  90. 字体名称=宋体
  91. 字体大小=14
  92. 磅单份数=3
  93. 每份之间的间距=260
  94. 窗口X=259
  95. 窗口Y=60
  96. 窗口宽度=800
  97. 窗口高度=600
复制代码
求批处理处理上面txt文本,[打印设置]那里改成以下
  1. [打印设置]
  2. 退纸=1
  3. 打印纸长度=153
  4. 序号X=61
  5. 序号Y=188
  6. 打印序号=1
  7. 日期X=61
  8. 日期Y=218
  9. 打印日期=1
  10. 时间一X=61
  11. 时间一Y=248
  12. 打印时间一=1
  13. 时间二X=61
  14. 时间二Y=278
  15. 打印时间二=1
  16. 车号X=61
  17. 车号Y=309
  18. 打印车号=1
  19. 总重X=61
  20. 总重Y=400
  21. 打印总重=1
  22. 皮重X=61
  23. 皮重Y=431
  24. 打印皮重=1
  25. 净重X=61
  26. 净重Y=458
  27. 打印净重=1
  28. 客户X=61
  29. 客户Y=36
  30. 打印客户=1
  31. 货物X=61
  32. 货物Y=339
  33. 打印货物=1
  34. 收费X=61
  35. 收费Y=371
  36. 打印收费=0
  37. 司秤员X=222
  38. 司秤员Y=54
  39. 打印司秤员=0
  40. 字体名称=宋体
  41. 字体大小=14
  42. 磅单份数=3
  43. 每份之间的间距=260
  44. 窗口X=155
  45. 窗口Y=62
  46. 窗口宽度=800
  47. 窗口高度=600
复制代码
再求批处理还远原来的[打印设置],求达人帮助
 楼主| 发表于 2014-7-14 14:14:09 | 显示全部楼层
求好人出手相助
发表于 2014-7-14 14:15:54 | 显示全部楼层
准备3个文件

假设文件的名字叫做 设置.ini

设置_1.ini 内容如下:
[打印设置]
退纸=1
......

设置_2.ini 内容如下:
[打印设置]
退纸=0
......

准备2个bat脚本

修改.bat
  1. copy /y "设置_1.ini" "设置.ini"
复制代码
还原.bat
  1. copy /y "设置_2.ini" "设置.ini"
复制代码
 楼主| 发表于 2014-7-14 17:17:33 | 显示全部楼层
回复 3# DAIC


这样做不可以,因为我的情况是,文本里面其他内容有的会随机变化,求帮助>_<
发表于 2014-7-14 17:43:11 | 显示全部楼层
回复 4# xonic


    如果没有任何规律的话,脚本怎么写?
 楼主| 发表于 2014-7-14 20:42:31 | 显示全部楼层
回复 5# DAIC


   
规律是最后那多行文字修改,前部分是不变的~~~
发表于 2014-7-14 21:12:02 | 显示全部楼层
回复 6# xonic


    还是没有解释清楚为什么2楼那种方法不行啊
发表于 2014-7-15 00:31:18 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=:" %%i in ('findstr /ilnxc:"[打印设置]" a.txt') do set "n=%%i"
  3. (for /L %%i in (2,1,!n!) do (
  4.      set s=
  5.      set/ps=
  6.      echo,!s!
  7. )
  8. type b.txt
  9. )<a.txt >"%temp%\$.t"
  10. >b.txt (echo [打印设置]&more +%n% a.txt)
  11. move "%temp%\$.t" a.txt >nul
  12. pausel
复制代码
发表于 2014-7-15 07:36:40 | 显示全部楼层
也许楼主的表达是在打印设置的地方开始进行内容替换,打印后要替换回去。
借8楼代码,将11句改为d.txt
将你的修改内容存入c.txt
  1. type d.txt>>a.txt
  2. type c.txt>>a.txt
复制代码
还原
  1. del a.txt
  2. type d.txt>>a.txt
  3. type b.txt>>a.txt
复制代码
 楼主| 发表于 2014-7-15 23:45:49 | 显示全部楼层
回复 9# hlzj88


  好方法!!受教!!!
发表于 2014-7-16 01:00:00 | 显示全部楼层
回复 10# xonic
其实8楼代码再次运行也就还原了
 楼主| 发表于 2014-7-16 08:25:08 | 显示全部楼层
回复 11# terse


    ~>_<~八楼的代码我运行后,文本没改变。。。。。什么原因??
 楼主| 发表于 2014-7-16 08:32:07 | 显示全部楼层
回复 8# terse


    八楼代码更改如下运行成功,无限感激!!!!

for /f "delims=:" %%i in ('findstr /i /l /n /x /c:"[打印设置]" a.txt') do set "n=%%i"
 楼主| 发表于 2014-7-16 08:55:07 | 显示全部楼层
回复 8# terse


    再次求教

批处理的最后能否实现以下功能:

显示更改文本后,“退纸=”那整行
pause;
 楼主| 发表于 2014-7-16 09:23:07 | 显示全部楼层
自己动手解决(*^__^*) 嘻嘻……

@type Params.dll | (find "退纸=0") >目前打印格式.txt
@type 目前打印格式.txt
@type Params.dll | (find "退纸=1") >目前打印格式.txt
@type 目前打印格式.txt
pause;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 10:33 , Processed in 0.036486 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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