2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« パイプと遅延展開、CALL :ラベル、@ECHO OFF、SET /Aとの相性 | トップページ | 二つのテキストファイルの行同士を接合するバッチ その3 »

2007年3月10日 (土)

二つのテキストファイルの行同士を接合するバッチ その2

接合.CMD ファイル1 ファイル2

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
(FOR /F %%0 IN ('FIND /C /V ""') DO SET N1=%%0) <%1
(FOR /F %%0 IN ('FIND /C /V ""') DO SET N2=%%0) <%2
IF %N1% LSS %N2% SET /A N1=N2
SET /A N2=N1
SET N3=1
:L1
SET N2=%N2:~1%
SET /A N3*=10
IF DEFINED N2 GOTO L1
SET /A N4=N3+N1
(
@ECHO OFF
(FOR /F "DELIMS=[] TOKENS=1*" %%0 IN ('FIND /N /V ""') DO (
SET /A NN=N3+%%0 >NUL
CALL ECHO %%NN%% A %%1
)
) <%1
SET /A NN+=1 >NUL
FOR /F %%4 IN ('ECHO %%NN%%') DO FOR /L %%0 IN (%%4,1,%N4%) DO ECHO %%0 A
(FOR /F "DELIMS=[] TOKENS=1*" %%0 IN ('FIND /N /V ""') DO (
SET /A NN=N3+%%0 >NUL
CALL ECHO %%NN%% B %%1
)
) <%2
SET /A NN+=1 >NUL
FOR /F %%4 IN ('ECHO %%NN%%') DO FOR /L %%0 IN (%%4,1,%N4%) DO ECHO %%0 B
)|FOR /F "TOKENS=1-2*" %%1 IN ('SORT') DO @IF %%2==A (SET /P X=%%3 <NUL) ELSE ECHO:%%3

横にタブで接合します。
縦に改行で接合するには、
)|FOR /F "TOKENS=1-2*" %%1 IN ('SORT') DO @ECHO:%%3
に変えます。

« パイプと遅延展開、CALL :ラベル、@ECHO OFF、SET /Aとの相性 | トップページ | 二つのテキストファイルの行同士を接合するバッチ その3 »