[前の記事]« [WIN98]再起動後DOS画面になってしまいEXITも効かない
[次の記事][NT系]ファイルサイズを取得して処理を分岐させるには »

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

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

バッチファイルの一部の行を別のファイルに書き出したい

80.
バッチファイルの中身を...
2004年11月23日(火) 10時11分
マー坊
お久しぶりです。マー坊です。
●DOS/Windowsのバージョン↓
windows XP pro
バッチファイルの中身の一部分だけを、
ほかのファイルにコピーしたいのですが、
どうしたらいいですか?
例えば...
copy ○○ ○○
aaa
bbb
ccc


このときに処理にまったく関係のないaaa bbb cccを
ほかのファイルにコピーしたいというわけ。
分かる方教えてください。
84.
Re:バッチファイルの中身を...
2004年11月25日(木) 01時42分
otn
>お久しぶりです。マー坊です。
>●DOS/Windowsのバージョン↓
>windows XP pro
>バッチファイルの中身の一部分だけを、
>ほかのファイルにコピーしたいのですが、
>どうしたらいいですか?
>例えば...
>copy ○○ ○○
>aaa
>bbb
>ccc


>このときに処理にまったく関係のないaaa bbb cccを
>ほかのファイルにコピーしたいというわけ。
>分かる方教えてください。

エディタで、コピー・ペーストでは?

そうじゃなくて、これもバッチ処理でしたいといことなら、
「処理に全く関係の無い」という主観的な判断を客観的に
記述できないと無理ですね。AIじゃないんだから。
例えば、「copy という文字を含まない」という判断でいいなら、findstr を使えばいいと思います。
86.
Re2:バッチファイルの中身を...
2004年11月25日(木) 22時51分
マー坊
>エディタで、コピー・ペーストでは?

>そうじゃなくて、これもバッチ処理でしたいといことなら、
>「処理に全く関係の無い」という主観的な判断を客観的に
>記述できないと無理ですね。AIじゃないんだから。
>例えば、「copy という文字を含まない」という判断でいいなら、findstr を使えばいいと思います。


otnさん答えていただいてありがとうございます。
「copy という文字を含まない」ではなく
できれば、○行目から○行目までをテキストファイルに出力したいということです。実際はもっと長いバッチで、
その一部分(30行あったら、5,6行程度)をほかのファイルに出力したいので、
それ以外というコマンドだと、かなり長くなりますから...
そういうコマンドを知っている方は、ぜひ教えてください。
90.
Re3:バッチファイルの中身を...
2004年11月26日(金) 17時02分
otn
>>エディタで、コピー・ペーストでは?
>>
>>そうじゃなくて、これもバッチ処理でしたいといことなら、
>>「処理に全く関係の無い」という主観的な判断を客観的に
>>記述できないと無理ですね。AIじゃないんだから。
>>例えば、「copy という文字を含まない」という判断でいいなら、findstr を使えばいいと思います。
>>

>otnさん答えていただいてありがとうございます。
>「copy という文字を含まない」ではなく
>できれば、○行目から○行目までをテキストファイルに出力したいということです。実際はもっと長いバッチで、
>その一部分(30行あったら、5,6行程度)をほかのファイルに出力したいので、
>それ以外というコマンドだと、かなり長くなりますから...
>そういうコマンドを知っている方は、ぜひ教えてください。

a.txtの11行目から5行をb.txtにいれるとすると、

@echo off
setlocal enabledelayedexpansion
set N=0
for /f "skip=10 delims=" %%A in (a.txt) do (
 echo %%A>>b.txt
 set /a N+=1
 if !N! GEQ 5 goto next
)
:next
ただし、該当行範囲11-15行目に空行があると無視されて出力がずれます。あるいは、

@echo off
setlocal enabledelayedexpansion
set N=0
(for /f "delims=" %%A in (a.txt) do (
 set /a N+=1
 if !N! GEQ 11 if !N! LEQ 15 echo %%A
)) >b.txt
これも空行があると範囲がずれます。

空行があってもずれないようにするには find /n /v "" で行番号をつけて後で取るというふうにちょっと複雑になります。
117.
Re4:バッチファイルの中身を...
2004年12月05日(日) 17時36分
マー坊
otnさん、回答ありがとうございました。
しかし、なぜか自分自身のバッチファイルの内容まで、
書き出してしまいました。
(ちゃんと書き出した部分もありました。)
なぜなのか、自分でも見当がつきません。
122.
Re5:バッチファイルの中身を...
2004年12月06日(月) 17時40分
otn
>otnさん、回答ありがとうございました。
>しかし、なぜか自分自身のバッチファイルの内容まで、
>書き出してしまいました。
>(ちゃんと書き出した部分もありました。)
>なぜなのか、自分でも見当がつきません。

こういう抽象的な状況説明では、何とも言い様がありません。
「頑張ってください」というような精神的なアドバイスしか出来ません。
 
 


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

 

カテゴリー一覧

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


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

資料書籍

About

2004年11月23日 05:21に投稿されたエントリーのページです。

ひとつ前の投稿は「[WIN98]再起動後DOS画面になってしまいEXITも効かない」です。

次の投稿は「[NT系]ファイルサイズを取得して処理を分岐させるには」です。

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

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