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

[文本处理] 【已解决】BAT:将多个bat代码合并,为何出错

[复制链接]
发表于 2014-10-16 22:40:25 | 显示全部楼层 |阅读模式
本帖最后由 思想之翼 于 2014-10-17 14:21 编辑

@echo off&setlocal enabledelayedexpansion
set filenum=100   
    for /l %%a in (1,1,%filenum%) do (
        for /f "delims=" %%i in (D:\模版\模版1\模版1_001\lishi\%%a.txt) do (
            set /a n+=1
            for %%a in (!n!) do set "#%%a=!#%%a! %%i"
        )
        set /a m=n,n=0
    )
    (for /l %%a in (1,1,!m!) do echo,!#%%a:~1!)>D:\模版\数据(横并)1\001.txt
exit

@echo off&setlocal enabledelayedexpansion
set filenum=100   
    for /l %%a in (1,1,%filenum%) do (
        for /f "delims=" %%i in (D:\模版\模版1\模版1_002\lishi\%%a.txt) do (
            set /a n+=1
            for %%a in (!n!) do set "#%%a=!#%%a! %%i"
        )
        set /a m=n,n=0
    )
    (for /l %%a in (1,1,!m!) do echo,!#%%a:~1!)>D:\模版\数据(横并)1\002.txt
exit

......

@echo off&setlocal enabledelayedexpansion
set filenum=100   
    for /l %%a in (1,1,%filenum%) do (
        for /f "delims=" %%i in (D:\模版\模版1\模版1_100\lishi\%%a.txt) do (
            set /a n+=1
            for %%a in (!n!) do set "#%%a=!#%%a! %%i"
        )
        set /a m=n,n=0
    )
    (for /l %%a in (1,1,!m!) do echo,!#%%a:~1!)>D:\模版\数据(横并)1\100.txt
exit

将上述100个类似的代码,合并如下,代码不运行,为何?
  1. @echo off
  2. set filenum=100
  3. for /l %%x in (1001,1,1100) do (
  4.     set y=%%x
  5.     setlocal enabledelayedexpansion
  6.     for /l %%a in (1,1,%filenum%) do (
  7.         for /f "delims=" %%i in (D:\模版\模版1\模版1_!y:~1!\lishi\%%a.txt) do (
  8.             set /a n+=1
  9.             for %%a in (!n!) do set "#%%a=!#%%a! %%i"
  10.         )
  11.         set /a m=n,n=0
  12.     )
  13.     (for /l %%a in (1,1,!m!) do echo,!#%%a:~1!)>D:\模版\数据(横并)1\!y:~1!.txt
  14.     endlocal
  15. )
  16. exit
复制代码
发表于 2014-10-17 08:16:28 | 显示全部楼层
回复 1# 思想之翼


   源代码本身报错,再加上合并也不是这样的的啊,处理的到exit直接退出了,哪还能继续运行??
 楼主| 发表于 2014-10-17 08:47:44 | 显示全部楼层
回复 2# 小智BAT

单个代码完美正确解决问题。现在只需要将100个这样的代码合并。
发表于 2014-10-17 09:40:29 | 显示全部楼层
本帖最后由 apang 于 2014-10-18 00:41 编辑

转义:
>D:\模版\数据^(横并^)1\!y:~1!.txt

或者用引号包围(其实也是转义):
>"D:\模版\数据(横并)1\!y:~1!.txt"

评分

参与人数 1技术 +1 收起 理由
思想之翼 + 1 感谢分享

查看全部评分

发表于 2014-10-17 09:44:35 | 显示全部楼层
回复  小智BAT

单个代码完美正确解决问题。现在只需要将100个这样的代码合并。
思想之翼 发表于 2014-10-17 08:47



    如果有txt文本行数不相等的情况,你再试试还完美不?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 21:06 , Processed in 0.031655 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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