Board logo

标题: [文本处理] [已解决]批处理ECHO处于打开状态的问题 [打印本页]

作者: lovealei    时间: 2018-4-29 16:07     标题: [已解决]批处理ECHO处于打开状态的问题

  1. set /p a=<j.txt
  2. set /a b=%a%+1
  3. echo %b%>j.txt
  4. pause
复制代码
上面这个是个简单的统计,但为什么我运行时输出到文件就会提示 ECHO 处于打开状态的问题,但实际上是有数值的呀,最近头晕弄不清楚,那里错了?
作者: yhcfsr    时间: 2018-4-29 17:36

从语法上来,这段代码并无问题。
如果你想读取文本首行并+1,输出到源文本,不妨这样改:
  1. (echo %b%)>j.txt
复制代码
当然这样做输出后的源文本只有修改后的一行而已。
建议把代码全贴出来,把你的意图也写出来,最好源文件也贴上来。
作者: lovealei    时间: 2018-4-30 08:49

回复 2# yhcfsr


    我的需求就是做一个简单计数,每运行一次计数加1,加了括号就不会报错了,谢谢
作者: m91opse    时间: 2018-4-30 11:52

大哥,怎么解决的?
作者: bbaa    时间: 2018-4-30 15:16

重定向背锅
  1. >j.txt echo %b%
复制代码

作者: lovealei    时间: 2018-5-1 09:48

本帖最后由 lovealei 于 2018-5-1 09:50 编辑

回复 4# m91opse


(echo %b%)>j.txt

>j.txt  echo %b%

这两个都可以的
作者: m91opse    时间: 2018-5-5 00:22

本帖最后由 m91opse 于 2018-5-5 00:32 编辑

真的好东西,与大家分享才是有无限价值的,才是王道。赞赞赞!
楼上几位大哥,我用在别的批处理里面,非常好
但是,表达还是不够强大。给下面2段代码这个符号>在加一个使之变成这样>>,表达将会非常强大,哈哈。我测试了好几遍,才得出的结果。
附上代码
(echo %b%)>>j.txt

>>j.txt  echo %b%


作者: m91opse    时间: 2018-5-5 00:23

本帖最后由 m91opse 于 2018-5-9 22:06 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set y1=100
  3. set y2=
  4. set y3=
  5. set y4=
  6. set y5=
  7. set y6=
  8. set y7=
  9. set y8=
  10. set y9=
  11. set y10=
  12. set y11=
  13. set y12=
  14. for %%a in (%y1% %y2% %y3% %y4% %y5% %y6% %y7%
  15. %y8% %y9% %y10% %y11% %y12%) do if "%%a" neq "" (
  16.         if not defined sum (  set "sum=%%a" ) else (
  17.         set "sum=!sum!+%%a"
  18.         )
  19. )
  20. for /f %%a in ('powershell -c "%sum%"') do set sum=%%a
  21. echo                      ==============================================
  22. echo                                2017年盈亏情况= %sum%元
  23. echo                      ==============================================
  24. (echo ==============================================)>>j.txt
  25. (echo         2017年盈亏情况= %sum%元)>>j.txt
  26. (echo ==============================================)>>j.txt
  27. pause
复制代码

作者: m91opse    时间: 2018-5-5 00:25

本帖最后由 m91opse 于 2018-5-18 22:54 编辑
  1. @echo off&setlocal enabledelayedexpansion
  2. set y1=100
  3. set y2=
  4. set y3=
  5. set y4=
  6. set y5=
  7. set y6=
  8. set y7=
  9. set y8=
  10. set y9=
  11. set y10=
  12. set y11=
  13. set y12=
  14. for %%a in (%y1% %y2% %y3% %y4% %y5% %y6% %y7%
  15. %y8% %y9% %y10% %y11% %y12%) do if "%%a" neq "" (
  16.         if not defined sum (  set "sum=%%a" ) else (
  17.         set "sum=!sum!+%%a"
  18.         )
  19. )
  20. for /f %%a in ('powershell -c "%sum%"') do set sum=%%a
  21. echo                      ==============================================
  22. echo                                2017年盈亏情况= %sum%元
  23. echo                      ==============================================
  24. >>j.txt  echo ==============================================
  25. >>j.txt  echo         2017年盈亏情况= %sum%元
  26. >>j.txt  echo ==============================================
  27. pause
复制代码

作者: m91opse    时间: 2018-5-5 00:26

这样效果就更加完全现实了,很碧真了。哈哈 赞赞赞
作者: m91opse    时间: 2018-5-5 00:37

大哥,求教个问题吧?http://www.bathome.net/thread-47992-1-1.html




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2