[前の記事]« 同名の全てのテキストファイルを検出して1行追記したい
[次の記事]長いIF文を複数行に分けたい »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
▲カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ
▲カテゴリー「FOR .. IN ( ) DO..」索引へ
▲カテゴリー「文字列の操作」索引へ

2つのテキストファイルの内容を行単位で結合したい

903.
テキストに文字を追加
2005年12月24日(土) 06時10分
健三郎
●DOS/Windowsのバージョン↓
WindowsXP
(以下ご自由に質問文をお書きください)
まずin1.txtとin2.txtがあり、出力結果がout.txtです。
in1.txtの1行目とin2.txtの1行目を読み取りout.txtに出力します。
次に、2行目、3行目、4行目・・・・・・と同じことを繰り返します。

いろいろ試したのですがうまくいかず(汗)
どなたか力を貸して下さい。
よろしくお願いします。m(_ _)m

↓各ファイルの中身

-----in1.txt-----
1111
2222
3333
4444
5555
-----------------
-----in2.txt-----
aaaa
bbbb
cccc
dddd
rrrr
-----------------
-----out.txt-----
1111aaaa
2222bbbb
3333cccc
4444dddd
5555eeee
-----------------●DOS/Windowsのバージョン↓

(以下ご自由に質問文をお書きください)
904.
Re:テキストに文字を追加
2005年12月25日(日) 22時34分
otn
>●DOS/Windowsのバージョン↓
>WindowsXP
>(以下ご自由に質問文をお書きください)
>まずin1.txtとin2.txtがあり、出力結果がout.txtです。
>in1.txtの1行目とin2.txtの1行目を読み取りout.txtに出力します。
>次に、2行目、3行目、4行目・・・・・・と同じことを繰り返します。

同時に2ファイル並行しては読めないので、
案1: 1ファイルを全部環境変数に読み込んで、2ファイル目を読みながら出力
案2: 1ファイル目を1行読むごとに、2ファイル目を毎回読み直しn行目だけ得る

案1はちょっと面倒だし、メモリの上限があると思うので、速度面では劣りますが、案2がいいかと。

setlocal
if exist out.txt del out.txt
set N=0
set S=
for /f "delims=" %%A in (in1.txt) do call :sub "%%A"
goto :eof
:sub
for /f "%S% delims=" %%B in (in2.txt) do >>out.txt echo %~1%%B&goto next
:next
set /a N+=1
set S=skip=%N%

"skip=0"だとエラーになるようですね。
 
 


カテゴリー「COPY,XCOPY…ファイルやディスクの複写・連結・バックアップ」索引へ
カテゴリー「FIND,FINDSTR,SORT…テキストファイル内文字列の操作」索引へ
カテゴリー「FOR .. IN ( ) DO..」索引へ
カテゴリー「文字列の操作」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2005年12月24日 15:00に投稿されたエントリーのページです。

ひとつ前の投稿は「同名の全てのテキストファイルを検出して1行追記したい」です。

次の投稿は「長いIF文を複数行に分けたい」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート