[前の記事]« [Win95]ファイル名の末尾に日付情報を付加したい
[次の記事]テキストファイルに空改行を入れたいが、空白が入ってしまう »

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

▲カテゴリー「文字列の操作」索引へ

[WinXP]標準のコマンドのみでテキストファイルの指定行に文字列を挿入したい

874.
MS-DOSコマンドのみで指定行への文字列挿入を実行するためには?
2004年09月29日(水) 10時54分
Amo
●DOS/Windowsのバージョン Windows XP

はじめまして。MS-DOS超初心者のAmoといいます。

あるテキストファイル内の文字列の指定箇所に複数行に
わたる新しい文字列を挿入するバッチを作りたいのですが、
そのようなものをawkやsedなどを一切用いず、MS-DOSの
コマンドのみで書き上げることは可能なのでしょうか?
ここ一週間のあいだ色々と試行錯誤を繰り返しているの
ですが、どうしても出来ません。

例えば、あるファイルに『MS-DOS(改行)DOSDOSDOS』という
2行分の文字列をテキストの4行目から挿入したい場合:

abcdefghijk     abcdefghijk
hjiuteurloi     hjiuteurloi  
kokokokokoko  →   kokokokokoko 
gogogogogogo      MS-DOS  
hdsufhosdfhi         DOSDOSDOS 
                     gogogogogogo
                     hdsufhosdfhi  


テキストを指定行を境にして分割し、一方に挿入したい
文字列をリダイレクトコマンドで追加入力したあと、
分割したファイルをcopyコマンドで一つにまとめるという
方法をなんとか思いついたのですが、ファイルの分割に
関するMS-DOS上のコマンドが見つからず、ここでも
つまずいています。どなたか知恵をお貸しください。
875.
Re:MS-DOSコマンドのみで指定行への文字列挿入を実行するためには?
2004年09月29日(水) 11時00分
Amo
>●DOS/Windowsのバージョン Windows XP

>はじめまして。MS-DOS超初心者のAmoといいます。

>あるテキストファイル内の文字列の指定箇所に複数行に
>わたる新しい文字列を挿入するバッチを作りたいのですが、
>そのようなものをawkやsedなどを一切用いず、MS-DOSの
>コマンドのみで書き上げることは可能なのでしょうか?
>ここ一週間のあいだ色々と試行錯誤を繰り返しているの
>ですが、どうしても出来ません。

>例えば、あるファイルに『MS-DOS(改行)DOSDOSDOS』という
>2行分の文字列をテキストの4行目から挿入したい場合:

>abcdefghijk     abcdefghijk
>hjiuteurloi     hjiuteurloi  
>kokokokokoko  →   kokokokokoko 
>gogogogogogo      MS-DOS  
>hdsufhosdfhi         DOSDOSDOS 
>                     gogogogogogo
>                     hdsufhosdfhi  


>テキストを指定行を境にして分割し、一方に挿入したい
>文字列をリダイレクトコマンドで追加入力したあと、
>分割したファイルをcopyコマンドで一つにまとめるという
>方法をなんとか思いついたのですが、ファイルの分割に
>関するMS-DOS上のコマンドが見つからず、ここでも
>つまずいています。どなたか知恵をお貸しください。


すみません。例に関する記号の並び方が少々おかしくなって
しまいましたが、ここで示したかったのは、4行目を指定して
新たな2行分の文字列を挿入し、以前の4行目以降は挿入された
文字列の後ろにまわるということです。
よろしくお願いします。
878.
Re2:MS-DOSコマンドのみで指定行への文字列挿入を実行するためには?
2004年09月29日(水) 16時37分
ラシャン
こんな感じでどうでしょう?
カウンターを作り、行数をカウントアップしながら
tmp.txtへ書き出していって、4行目になったら
追加する文を挿入します。

TEST.BAT
---------------------------------------
@echo off
setlocal enabledelayedexpansion
set GYO=1
for /f %%a in (TEST1.TXT) do (
if "!GYO!"=="4" type TEST2.TXT >>tmp.txt
echo %%a>>tmp.txt
set /a GYO=!GYO! + 1
)
type tmp.txt > TEST1.TXT
del tmp.txt
---------------------------------------


TEST1.TXT(元のファイル)
---------------------------------------
abcdefghijk
hjiuteurloi
kokokokokoko
gogogogogogo
hdsufhosdfhi
---------------------------------------


TEST2.TXT(追加する文)
---------------------------------------
MS-DOS
DOSDOSDOS
---------------------------------------


TEST1.TXT(BAT実行後)
---------------------------------------
abcdefghijk
hjiuteurloi
kokokokokoko
MS-DOS
DOSDOSDOS
gogogogogogo
hdsufhosdfhi
---------------------------------------
 

 

874.MS-DOSコマンドのみで指定行への文字列挿入を実行するためには? Amo 04/09/29(水) 10:54
875.Re:MS-DOSコマンドのみで指定行への文字列挿入を実行するためには? Amo 04/09/29(水) 11:00
878.Re2:MS-DOSコマンドのみで指定行への文字列挿入を実行するためには? ラシャン 04/09/29(水) 16:37
 
 


カテゴリー「文字列の操作」索引へ

 

カテゴリー一覧

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


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

資料書籍

About

2004年09月29日 16:04に投稿されたエントリーのページです。

ひとつ前の投稿は「[Win95]ファイル名の末尾に日付情報を付加したい」です。

次の投稿は「テキストファイルに空改行を入れたいが、空白が入ってしまう」です。

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

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