Board logo

标题: BAT处理两个文本夹sj.text和hz.text [打印本页]

作者: roubye     时间: 2010-12-2 11:48    标题: BAT处理两个文本夹sj.text和hz.text

我想实现一个BAT处理两个文本夹sj.text和hz.text的文件,
生成目录mb.text例如

mb.text
vdootyvkshello
blvsndhhhok.ok
jcycrxxfhyes.yes
ieryundfpbat.bat.bat
dfmscjcwj@i love you
uuizhacpcoh!my god!
ifonyjvrpha ha ha
velwqugeshello
tjuwavlpqok.ok
prdgkzgfnyes.yes
pqmzgdvmnbat.bat.bat
xlovtkree@i love you
rwcqapckxoh!my god!
lqnwozrxzha ha ha
.....
就是把sj.text每一行不断和hz.text的每一行组合然后一行行放进mb.text


sj.text
- - - - - - - - - - - - - - - - - - -
不是普通一样的?

1.        vdootyvks
2.        blvsndhhh
3.        jcycrxxfh
4.        ieryundfp
5.        dfmscjcwj
6.        uuizhacpc
7.        ifonyjvrp
8.        velwquges
9.        tjuwavlpq
10.        prdgkzgfn
11.        pqmzgdvmn
12.        xlovtkree
13.        rwcqapckx
14.        lqnwozrxz
15.        ydmtxydom
16.        cdtwgkfvs
17.        tsunqucpp
18.        xstpcqgfw
19.        qavryduuo
20.        obgmakzlu
21.        autqzyjbg
22.        jhnwwhimy
23.        pdlcfosnd
24.        bbacvrvky
25.        qyacxkyog
26.        eyidzglcc
27.        wpdoubsbu
28.        wjdbyhgrc
29.        psqvxepqv
30.        axmtdnxuo
31.        ejjildads
32.        baiklhuby
33.        qhisgjqvf
34.        mgzmyxlck
35.        dfsglirqb
36.        myutyhozt
37.        yjhvwnxze
38.        yottsvgkn
39.        cjiqsuqck
40.        gypqapryw
41.        ouhhvzftd
42.        tfobotqar
43.        duadbhpwa
44.        bgspefvyi
45.        mgwuutwos
46.        verrzuvrd
47.        shgxrcxsz
48.        ewwppdhnb
49.        lbnwcwvsb
50.        ozrxaydmm
51.        xydofucsv
52.        fjdtrrqtl
53.        ilbohprso
54.        apewuozup
55.        wbtsmftek
56.        rirkmztsp
57.        ywitfigmn
58.        vfglqnckt
59.        dnkfvzzyb
60.        tqujppxza
61.        wiqmevxhv
62.        xejubunbm
63.        maqzsuhua
64.        xgeqbnjhn
65.        wdohmyvkl
66.        dnqupejji
67.        lwadtzzhj
68.        kgsawofgr
69.        fhomelxxl
70.        pvktjvere
71.        khqhtlqtr
72.        xfnrrwifu
73.        vloycxnkk
74.        kmfimuhhp
75.        klhuiywni
76.        snjpvmmfg
77.        txescrdms
78.        mlirqbtyb
79.        zfoozaeqh
80.        vdtxgkfvs
81.        tsunjncqi
82.        suvrdshzx
83.        scxszfwwp
84.        iwhovlunp
85.        cwvsbalwi
86.        ljpryjjot
87.        qfnwgqniy
88.        cdcextxms
89.        sacdzmtqi
90.        zakybinxe
91.        yreqpducv
92.        xkxdajite
93.        qmkqzgrlp
94.        bznofprvq
95.        gllkmybfu
96.        baikmhucy
97.        qhishjqof
98.        mzznrxlvl
99.        yhuhnktlw
100.        otwuajquv

真的不一样!

hz.text
- - - - - - - - - - - - - - - - - - -

hello
ok.ok
yes.yes
bat.bat.bat
@i love you
oh!my god!
ha ha ha
作者: Hanyeguxing     时间: 2010-12-2 14:02
你的描述和你的操作示例不一致
作者: roubye     时间: 2010-12-2 14:35
就是把sj.text每一行不断和hz.text的每一行组合然后一行行放进mb.text

其中当然要去掉序号1.2.3.... 和别的无关文字
作者: Hanyeguxing     时间: 2010-12-2 15:06
如何区别有关和无关的字符?
作者: roubye     时间: 2010-12-2 17:11
mb.text
vdootyvkshello
blvsndhhhok.ok
jcycrxxfhyes.yes
ieryundfpbat.bat.bat
dfmscjcwj@i love you
uuizhacpcoh!my god!
ifonyjvrpha ha ha
velwqugeshello
tjuwavlpqok.ok
prdgkzgfnyes.yes
pqmzgdvmnbat.bat.bat
xlovtkree@i love you
rwcqapckxoh!my god!
lqnwozrxzha ha ha

这就是例子啊
作者: roubye     时间: 2010-12-2 17:13
- - - - - - - - - - - - - - - - - - -
不是普通一样的?

1.        vdootyvks
2.        blvsndhhh
3.        jcycrxxfh
4.        ieryundfp
5.        dfmscjcwj
6.        uuizhacpc
7.        ifonyjvrp
8.        velwquges
9.        tjuwavlpq
10.        prdgkzgfn
11.        pqmzgdvmn
12.        xlovtkree
13.        rwcqapckx
14.        lqnwozrxz
15.        ydmtxydom
16.        cdtwgkfvs
17.        tsunqucpp
18.        xstpcqgfw
19.        qavryduuo
20.        obgmakzlu
21.        autqzyjbg

这有规律的
去掉第一至第三行 再去掉1.        vdootyvks前面的1.        加空格
作者: DXSX     时间: 2010-12-2 17:35
用 awk 编辑一个脚本 来完成。
如果是 cmd 下 可以通过 两次 for 循环 完成。
作者: Hanyeguxing     时间: 2010-12-2 23:50

@echo off
set m=-1
for /f "delims=" %%a in (hz.txt) do set/a m+=1&call set "#%%m%%=%%a"
setlocal enabledelayedexpansion
(for /f "tokens=1*" %%a in (sj.txt) do (
        set a=%%a
        if "!a:~-1!"=="." (
                set/a "n=^!(!a:~0,-1!%%m)*m+!a:~0,-1!%%m"
                for %%c in (!n!) do echo %%b!#%%c!
)))>mb.text
[ Last edited by Hanyeguxing on 2010-12-4 at 10:34 ]
作者: roubye     时间: 2010-12-3 11:08
非常谢谢,不过
oh!my god!
这个不成功
作者: roubye     时间: 2010-12-3 17:50
Hanyeguxing帮个忙
作者: Hanyeguxing     时间: 2010-12-4 10:35
没注意到文本中有“!”,这样写:
@echo off&set m=-1
for /f "delims=" %%a in (hz.txt) do set/a m+=1&call set "#%%m%%=%%a"
setlocal enabledelayedexpansion
(for /f "tokens=1*" %%a in (sj.txt) do (
        set a=%%a
        if "!a:~-1!"=="." (
                set/a "n=^!(!a:~0,-1!%%m)*m+!a:~0,-1!%%m"
                for %%c in (!n!) do echo %%b!#%%c!
)))>mb.text

作者: roubye     时间: 2010-12-4 10:55
谢谢Hanyeguxing