Board logo

标题: [文本处理] [已解决]批处理有顺序的文本想合并却不能按照windows的顺序? [打印本页]

作者: szhgj    时间: 2012-3-21 09:13     标题: [已解决]批处理有顺序的文本想合并却不能按照windows的顺序?

原本有一些txt文本,他们的命名规则是5.txt,6.txt,7.txt,8.txt,9.txt,10.txt,11.txt,12.txt

现在用dir按照顺序想用copy命令合并
但是顺序却变成
10.txt
11.txt
12.txt
5.txt
6.txt
7.txt
8.txt
9.txt

怎么办?

附加条件:我要固定for循环数量。比如只从6.txt开始11.txt结束

应该能用for解决,不过我不是很熟练,写不出代码
劳驾高手解决

解决了,原来是没有追加/B
代码是修改自QIAOXINGXING 的
  1. @echo off
  2. SetLocal EnableDelayEdexpansion
  3. for /l %%a in (6 1 10) do (
  4.   set "str=!str! + %%a.txt"
  5. )
  6. copy /B !str:~3! 合并.txt
  7. pause
复制代码
希望对有需要的人提供帮助
作者: find    时间: 2012-3-21 09:44

  1. @echo off
  2. for /l %%a in (6,1,11) do (
  3.     echo %%a.txt
  4. )
  5. pause
复制代码

作者: QIAOXINGXING    时间: 2012-3-21 09:50

  1. @echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"
  2. for /L %%i in (6 1 11) do (
  3.   set "str=!str! + %%i.txt"
  4. )
  5. copy !str:~3! 合并.txt
  6. pause
复制代码

作者: szhgj    时间: 2012-3-21 10:07

回复 3# QIAOXINGXING


    闪了一下就没了=、=
作者: find    时间: 2012-3-21 10:48

回复 4# szhgj


2楼的闪不闪?
作者: szhgj    时间: 2012-3-21 11:05

本帖最后由 szhgj 于 2012-3-21 11:07 编辑

回复 5# find
  1. @echo off
  2. SetLocal EnableDelayEdexpansion
  3. for /l %%a in (6 1 11) do (
  4.   set "str=!str! + %%a.txt"
  5. )
  6. copy !str:~3! 合并.txt
  7. pause
复制代码
貌似这样可以,大家看看
作者: szhgj    时间: 2012-3-21 11:11

回复 6# szhgj


   最后面会有,这个怎么办“ ”
作者: szhgj    时间: 2012-3-21 12:27

解决了,原来是没有追加/B
代码是
  1. @echo off
  2. SetLocal EnableDelayEdexpansion
  3. for /l %%a in (6 1 10) do (
  4.   set "str=!str! + %%a.txt"
  5. )
  6. copy /B !str:~3! 合并.txt
  7. pause
复制代码
希望对有需要的人提供帮助




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