[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
先用:
  1. for /f "delims=" %%i in ('type b.txt') do >>b-.txt echo %%i
复制代码
把b.txt处理了
或者把4楼的改成:
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do set a%%a=%%b&set x1=%%a
  3. for /f "tokens=1* delims=:" %%a in ('type b.txt^|findstr /n .*') do set b%%a=%%b&set x2=%%a
  4. set /a x=!x1!*!x2!,xx1=1,xx2=1
  5. for /l %%a in (1 1 !x!) do (
  6. call :xx
  7. set/a xx1+=1,xx2+=1
  8. if !xx1! gtr !x1! set xx1=1
  9. if !xx2! gtr !x2! set xx2=1
  10. )
  11. pause
  12. :xx
  13. call echo.%%a%xx1%%%%%b%xx2%%%
复制代码
如果不强调顺序,可以直接:
  1. @echo off
  2. for /f "delims=" %%a in (a.txt) do for /f "delims=" %%b in ('type b.txt') do echo.%%a%%b
  3. pause
复制代码

[ 本帖最后由 hanyeguxing 于 2010-4-24 14:09 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

刚才百度了一下,了解了,我试试。

[ 本帖最后由 lj84831253 于 2010-4-24 14:12 编辑 ]

TOP

还是一样呀,,怎么办?你测试可以吗?

TOP

强调顺序的呵呵。

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do set a%%a=%%b&set x1=%%a
  3. for /f "tokens=1* delims=:" %%a in ('type b.txt^|findstr /n .*') do set b%%a=%%b&set x2=%%a
  4. set /a x=!x1!*!x2!,xx1=1,xx2=1
  5. for /l %%a in (1 1 !x!) do (
  6. call :xx
  7. set/a xx1+=1,xx2+=1
  8. if !xx1! gtr !x1! set xx1=1
  9. if !xx2! gtr !x2! set xx2=1
  10. )
  11. pause
  12. :xx
  13. call echo.%%a%xx1%%%%%b%xx2%%%>> 1.txt
复制代码

导出1.txt后用删除重复行去检测结果还是一样。。。何解?

[ 本帖最后由 lj84831253 于 2010-4-24 14:30 编辑 ]

TOP

  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do set a%%a=%%b&set x1=%%a
  3. for /f "tokens=1* delims=:" %%a in ('type b.txt^|findstr /n .*') do set b%%a=%%b&set x2=%%a
  4. set /a x=!x1!*!x2!,xx1=1,xx2=1
  5. for /l %%a in (1 1 !x!) do (
  6. call :xx
  7. set/a xx1+=1,xx2+=1
  8. if !xx1! gtr !x1! set xx1=1
  9. if !xx2! gtr !x2! set xx2=1
  10. )
  11. pause
  12. :xx
  13. call echo.%%a%xx1%%%%%b%xx2%%%>> 1.txt
复制代码
导出1.txt后用删除重复行去检测结果还是一样。。。何解?

TOP

原帖由 lj84831253 于 2010-4-24 14:29 发表
导出1.txt后用删除重复行去检测结果还是一样。。。何解?

你没说清楚啊,别怕费事,多打俩字,把问题说清楚!
本身a、b文本不重复,输出的1就不可能有重复,为什么还要检查重复行呢?
如果想检查,也应该在a、b文本内检查。这样的操作是a+b行,而如果在1中检查,操作将是a*b行

[ 本帖最后由 hanyeguxing 于 2010-4-24 14:46 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

原帖由 hanyeguxing 于 2010-4-24 14:42 发表

你没说清楚啊,别怕费事,多打俩字,把问题说清楚!
本身a、b文本不重复,输出的1就不可能有重复,为什么还要检查重复行呢?
如果想检查,也应该在a、b文本内检查。这样的操作最多增加a+b行,而如果在1中检查,操 ...
首先检测a.txt和b.txt是肯定没有重复的行,所以导出的1.txt应该也不会有重复的行对吗?可是如果你复制1.txt的第一行然后查找,就会发现有好几行跟第一行重复了。得到的正确结果应该是每一行都不相同啊,奇怪。。你可以看得明白吗?表达能力有限呵呵,

TOP

还在吗?我好郁闷啊。。。。崩溃。。。

TOP

假设a内容为:
A
B
C
D
b为:
1
2
你要怎么排列?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

A1
B2
C1
D2
A1
B2
C1
D2啊?有重复行。

[ 本帖最后由 lj84831253 于 2010-4-24 15:19 编辑 ]

TOP

我明白了,如果是这样。a.txt:
A
B
C
b.txt:
1
2
3
4
这样就不会有重复行。

TOP

可是。。怎样找规律呢?什么情况下会有重复行,什么情况下不会有重复行,。。。难啊,,,,,,,我想砸电脑了呀,,,

TOP

原帖由 yangfengoo 于 2010-4-23 11:37 发表
@echo off & setlocal enabledelayedexpansion
for /f "tokens=1* delims=:" %%a in ('findstr /n .* a.txt') do set a%%a=%%b&set x1=%%a
for /f "tokens=1* delims=:" %%a in ('findstr /n .* b.txt') do set b% ...
这样子说这段代码就不行了。。。

TOP

原帖由 lj84831253 于 2010-4-24 15:26 发表
可是。。怎样找规律呢?什么情况下会有重复行,什么情况下不会有重复行,。。。难啊,,,,,,,我想砸电脑了呀,,,

以4楼的代码为例,只有a、b文本的行数没有公约数时,才不会有重复行

A1、A2、B1、B2、C1、C2、D1、D2你到底打算怎么排列呢?

如果想不明白,就用我在16楼的第三个批处理吧
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表