[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 用批处理形成另一个批处理

本帖最后由 winsfly 于 2020-8-3 17:23 编辑

我想把下面的这段批处理用批处理输出到另一个批处理
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1,1,100) do if not exist "对比结果%%i" set "folder=对比结果%%i" & goto :next
  4. :next
  5. if exist "对比结果\" rename "对比结果" "%folder%"
  6. md 对比结果
  7. for /f "delims=" %%i in (渠道交单数据.txt) do (find /i "%%i" 对比结果\渠道交单已去重.txt||echo %%i>>对比结果\渠道交单已去重.txt)
  8. (for /f %%i in ('type "对比结果\渠道交单已去重.txt"') do (
  9.     set "OldStr=%%i"
  10.     set "NewStr=!OldStr:~0,3!....!OldStr:~7,4!"
  11.     findstr "!NewStr!" 系统后台数据.txt >nul 2>&1 || echo,%%i
  12. ))>"对比结果\未入系统数据.txt"
  13. findstr /g:对比结果\渠道交单已去重.txt 后台错误数据.txt >对比结果\渠道错误数据.txt
  14. set rowa=0
  15. for /f %%a in (对比结果\渠道交单已去重.txt) do if '%%a' neq '' set /a rowa+=1
  16. set rowb=0
  17. for /f %%b in (渠道交单数据.txt) do if '%%b' neq '' set/a rowb+=1
  18. echo 渠道交单%rowb%单 >对比结果\对比结果总结.txt
  19. set /a rowd=%rowb%-%rowa%
  20. echo 渠道交单重复%rowd%单 >>对比结果\对比结果总结.txt
  21. set rowc=0
  22. for /f %%c in (对比结果\渠道错误数据.txt) do if '%%c' neq '' set/a rowc+=1
  23. echo 渠道交单错误%rowc%单 >>对比结果\对比结果总结.txt
  24. set rowe=0
  25. for /f %%d in (对比结果\未入系统数据.txt) do if '%%d' neq '' set/a rowe+=1
  26. echo 未入系统%rowe%单 >>对比结果\对比结果总结.txt
  27. set /a youxiao=%rowb%-%rowd%-%rowc%-%rowe%
  28. echo 统计有效为%youxiao%单 >>对比结果\对比结果总结.txt
  29. exit
复制代码
把上面所有命令输出为另一个批处理1.cmd   
不能用more语句,因为上面这些代码在另外一个批处理不同地方

  1. (Echo for /l %%%%i in ^(1,1,100^)do if not exist "比对%%%%i" set "folder=比对%%%%i"^&goto :next)>1.bat
复制代码

TOP

回复 1# winsfly


    不能用more语句的原因是?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# Batcher
因为我是一个庞大的批处理,只是想把这个批处理很多行的命令原封不动重新输出到另外一个批处理中

TOP

回复 2# smss
%%i可以用%%%%i
假如是%i%  这种变量就不行了吧?

TOP

回复 5# winsfly


    %%i%%
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# winsfly


    more也可以实现吧,看不出哪里有冲突呢
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

第七行有个空格,是不是因为你这个原因?

TOP

不确定地方也可以用more来输出啊。设置一个开始结束标记。用findstr /n找出其所在行数后不就可以用more进行定位输出了吗。
echo,hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5x>in.com

TOP

回复 8# 窄口牛
大侠,特别谢谢您,不辞麻烦地帮我全部搞好了,

    赞赞赞赞赞赞

TOP

  1. (Echo @Echo off^&SetLocal EnableDelayedExpansion
  2. Echo for /l %%%%i in ^(1,1,100^)do if not exist "对比结果%%%%i" set "folder=对比结果%%%%i"^&goto :next
  3. Echo :next
  4. Echo if exist "对比结果\" ren "对比结果" "%%folder%%"
  5. Echo md 对比结果
  6. Echo for /f "delims=" %%%%i in ^(渠道交单数据.txt^)do ^(find /i "%%%%i" 对比结果\渠道交单已去重.txt^|^|echo %%%%i^>^>对比结果\渠道交单已去重.txt^)
  7. Echo ^(for /f %%%%i in ^('type "对比结果\渠道交单已去重.txt"'^)do ^(set "OldStr=%%%%i"^&set "NewStr=!OldStr:~0,3!....!OldStr:~7,4!"^&findstr "!NewStr!" 系统后台数据.txt ^>nul 2^>^&1^|^|echo,%%%%i^)^)^>"对比结果\未入系统数据.txt"
  8. Echo findstr /g:对比结果\渠道交单已去重.txt 后台错误数据.txt ^>对比结果\渠道错误数据.txt
  9. Echo set rowa=0
  10. Echo for /f %%%%a in ^(对比结果\渠道交单已去重.txt^)do if '%%%%a' neq '' set /a rowa+=1
  11. Echo set rowb=0
  12. Echo for /f %%%%b in ^(渠道交单数据.txt^)do if '%%%%b' neq '' set/a rowb+=1
  13. Echo echo 渠道交单%%rowb%%单 ^>对比结果\对比结果总结.txt
  14. Echo set /a rowd=%%rowb%%-%%rowa%%
  15. Echo echo 渠道交单重复%%rowd%%单 ^>^>对比结果\对比结果总结.txt
  16. Echo set rowc=0
  17. Echo for /f %%%%c in ^(对比结果\渠道错误数据.txt^)do if '%%%%c' neq '' set/a rowc+=1
  18. Echo echo 渠道交单错误%%rowc%%单 ^>^>对比结果\对比结果总结.txt
  19. Echo set rowe=0
  20. Echo for /f %%%%d in ^(对比结果\未入系统数据.txt^)do if '%%%%d' neq '' set/a rowe+=1
  21. Echo echo 未入系统%%rowe%%单 ^>^>对比结果\对比结果总结.txt
  22. Echo set /a youxiao=%%rowb%%-%%rowd%%-%%rowc%%-%%rowe%%
  23. Echo echo 统计有效为%%youxiao%%单 ^>^>对比结果\对比结果总结.txt
  24. Echo exit
  25. Echo pause)>1.bat
  26. pause
复制代码

TOP

返回列表