[前の記事]« 指定したフォルダ以外の全てのフォルダのバックアップをとるには?
[次の記事]PINGログ保存の方法 »

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

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

テキスト内から文字を抽出してファイル名にしたい

617.
テキスト内文字をファイル名にする
2004年07月12日(月) 17時34分
m(_  _)m
たびたび、すみません。
テキスト内文字をファイル名にする件で、
前回教えていただいたのですが、
もう一つ表記方法が違うので、教えてください。
いろいろやっては、見たのですが、DOS素人なもんで・・・・
===================================================
 IDE ドライブ
テスト
シリアル番号=
 ------- 接続されているデバイスは.-------
  [1] --- Primary / Master ...
Maxtor 6Y080L0   S/N=Y2GNHTTE              
===================================================
同じく、S/N=後の数字をファイル名にしたいのですが、
前回のを使用し編集してもできないのです。
まだ、理解不足なので教えてください。
619.
Re:テキスト内文字をファイル名にする
2004年07月12日(月) 19時16分
ラシャン
前回のを変更すると以下のような感じですね
-----------------------------------------------------------
@echo off
for /f "tokens=3" %%a in ('FINDSTR "Maxtor" filename.txt') do (
for /f "tokens=2 delims==" %%b in ('echo %%a') do (
copy filename.txt %%b.txt
))
-----------------------------------------------------------

簡単に説明しますと・・・

流れとしては、シリアルNoが書いてある行を「ある名前」で検索して抜き出し
その抜き出した行からスペース区切りで、「S/N=シリアルNo」の部分だけを抜き出し
更に「=」を区切り文字にして「シリアルNo」だけを抜き出しているわけです。

なので、検索する文字列である「ある名前」が変わる場合は、
2行目の「FINDSTR "Maxtor" filename.txt」の「Maxtor」の部分を変えればOKです。

シリアルが書かれた行をスペースで区切った時に、行頭から何番目になるかを見て
2行目の「tokens=3」の数字を変えればOKです。

また、このfilename.txtのパターンが全部分かっていて、検索する「ある名前」が
全て行の頭にあるのであれば、BATの頭で「ある名前」によって処理を分岐させれば
1つのBATファイルだけで済むので楽かも知れませんね
621.
Re:テキスト内文字をファイル名にする
2004年07月12日(月) 23時44分
ラシャン
まとめるとこんな感じになるんでしょうか・・・
どういった感じで実行されるのかにもよりますが
とりあえず、参考までにということで~
-----------------------------------------------------------
@echo off
for /f "tokens=1-3" %%a in ('FINDSTR "S/N" filename.txt') do (
if %%a==Maxtor for /f "tokens=2 delims==" %%x in ('echo %%c') do copy filename.txt %%x.txt
if %%a==HDDName for /f "tokens=2 delims==" %%x in ('echo %%b') do copy filename.txt %%x.txt
)
-----------------------------------------------------------
622.
Re2:テキスト内文字をファイル名にする
2004年07月13日(火) 03時09分
oo
>まとめるとこんな感じになるんでしょうか・・・
>どういった感じで実行されるのかにもよりますが
>とりあえず、参考までにということで~
>-----------------------------------------------------------
>@echo off
>for /f "tokens=1-3" %%a in ('FINDSTR "S/N" filename.txt') do (
>if %%a==Maxtor for /f "tokens=2 delims==" %%x in ('echo %%c') do copy filename.txt %%x.txt
>if %%a==HDDName for /f "tokens=2 delims==" %%x in ('echo %%b') do copy filename.txt %%x.txt
>)
>-----------------------------------------------------------

空白区切りと=区切りで2回for /f文を実行していますが、
"tokens=3 delims== "
のようにすると空白と=が両方とも区切り文字になりますので、
for /f "tokens=3,4 delims== " %%A in (filename.txt) do (
 if %%A==S/N copy filename.txt %%B.txt
)
とか、
for /f "tokens=3,4 delims== " %%A in ('findstr /b "Maxtor HDDName" filename.txt') do (
 if %%A==S/N copy filename.txt %%B.txt
)
623.
Re3:テキスト内文字をファイル名にする
2004年07月13日(火) 09時23分
m(_  _)m
有難うございました。
そうですね。
最終的にこの様な感じになる事が望ましいので、
大変助かりました。
かなり、勉強にもなりましたので、
ちょくちょく、このBBSを利用させていただきます。
有難うございました。
>>まとめるとこんな感じになるんでしょうか・・・
>>どういった感じで実行されるのかにもよりますが
>>とりあえず、参考までにということで~
>>-----------------------------------------------------------
>>@echo off
>>for /f "tokens=1-3" %%a in ('FINDSTR "S/N" filename.txt') do (
>>if %%a==Maxtor for /f "tokens=2 delims==" %%x in ('echo %%c') do copy filename.txt %%x.txt
>>if %%a==HDDName for /f "tokens=2 delims==" %%x in ('echo %%b') do copy filename.txt %%x.txt
>>)
>>-----------------------------------------------------------

>空白区切りと=区切りで2回for /f文を実行していますが、
>"tokens=3 delims== "
>のようにすると空白と=が両方とも区切り文字になりますので、
>for /f "tokens=3,4 delims== " %%A in (filename.txt) do (
> if %%A==S/N copy filename.txt %%B.txt
>)
>とか、
>for /f "tokens=3,4 delims== " %%A in ('findstr /b "Maxtor HDDName" filename.txt') do (
> if %%A==S/N copy filename.txt %%B.txt
>)

625.
Re3:テキスト内文字をファイル名にする
2004年07月13日(火) 20時42分
ラシャン
>空白区切りと=区切りで2回for /f文を実行していますが、
>"tokens=3 delims== "
>のようにすると空白と=が両方とも区切り文字になりますので、

区切り文字はセットで指定できるんですね~
勉強になりました^^
 
 


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

 

カテゴリー一覧

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


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

資料書籍

About

2004年07月12日 13:11に投稿されたエントリーのページです。

ひとつ前の投稿は「指定したフォルダ以外の全てのフォルダのバックアップをとるには?」です。

次の投稿は「PINGログ保存の方法」です。

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

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