• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBS 以下の可変テキストから値を抽出)

複数の端末からアカウント情報からユーザの所属グループを抽出する方法

doara_2011の回答

  • ベストアンサー
回答No.1

何やら小難しいことを考えておられるが、以下の方法でどうでしょう? 1.ReadLine で1行ずつ読み込む 2.文字列の末尾が:だったらそれはグループ名、でなければユーザー名 3.ユーザー名がヒットすれば2.で設定したグループ名を出力 4.1~3をEOFまで繰り返す。 プログラムにすれば以下のようになります。 Dim fso, fin Dim strGrp, strLine Set fso = CreateObject("Scripting.FileSystemObject") Set fin = fso.OpenTextFile("ファイル名", 1) Do While Not fin.AtEndOfStream strLine = fin.ReadLine If Right(strLine, 1) = ":" Then strGrp = Left(strLine, Len(strLine) - 1) Else If strLine = "Nakayama" Then Wsh.Echo strGrp End If Loop fin.Close 以上

craftx
質問者

お礼

ありがとうございます。 すごく参考にさせて頂きました。 構文の勉強になりました。

関連するQ&A

  • VBSにてDNSサーバなどアドレス抽出

    すいませんが、以下の方法がわかりませんでしたのでご教示ください。 それぞれのテキストファイルにはPCのDNSやWINSサーバのアドレスを記述しています。 テキストファイルを一行ずつ読み込まして、テキスト内に記述しているDNSやWINSサーバのデータを抽出しようとしています。 DNSやWINSのブライマリは一行なので、抽出条件(IF文)で該当した行を出力させていますが、 セカンダリは存在しない場合、一行存在する場合、複数行存在する場合とまちまちで困っております。 例えば、一行ずつ読み込ましているデータの中に、「DNSセカンダリ」という文字があれば、instr関数を使用してその行を取得しています。 ただ複数DNSセカンダリを設定している場合は、次の行も取得しなければいけません。 次の行には「DNSセカンダリ」という文字がないので、抽出対象とできませんが、どうすれば複数行あったときでも抽出させることができるでしょうか。

  • [VBS] テキストファイルから任意の値を抽出する

    規則性のあるテキストから、1行づつ処理を行い ある文字列の設定値を抽出したいです。 例:Bの値だけを抽出したい。(AとBの間は半角スペース) 【テキストファイルの中身】 ---------------------------------------- 1行目| A="あ" B="あ" A="い" B="い" A="う" 2行目| A="え" B="う" A="お" B="え" A="か" 3行目| A="き" B="お" A="く" B="か" A="け" ---------------------------------------- 【出力結果】(Bの値だけ) --------------------- 1行目| あ,い 2行目| う,え 3行目| お,か --------------------- 色々方法はあると思いますが、どうしても複雑になってしまうので 簡単に出来る方法(観点)があれば、ご教示頂きたいです。

  • テキストファイルからの抽出

    VBAでもコマンドプロンプトでもいいのですが、1000行くらいあるテキストファイルを読み込んで、キーワード「タイムアウト」を含む行の1つ手前の行の文字列を抽出、それらを1つのファイルにまとめて出力させたいのです。 VBAで自分なりにやってみたのが http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12142881517 の最後の回答にあるマクロに手を少し加えて「タイムアウト」のある行番号をテキストファイルに出力し、その出力ファイルを読み込んで、一つ手前の行番号のリストを作ることまではできました。 ですが、どうやってそのリストから行番号を指定して、元のファイルからタイムアウトを含む行の1つ手前の行を抽出し、1つのファイルにまとめて出力させられるのかが分かりません。 後Powershellはまだ勉強途中なのですが、こっちでならできますか? アドバイスをお願いします。

  • テキストファイルでの更に細かい抽出

    おはようございます。前回、以下の質問をいたしました。その時は大変お世話になりました。 「テキストファイルに一行ずつ、バラバラの個人情報が入っているのですが (例:千葉県・東京都・茨城県・千葉県・群馬県・千葉県など) それを特定の一つだけを残したいのです。 (例:千葉県・千葉県・千葉県) その抽出方法を教えていただけませんでしょうか?」 この問題は皆さんの回答により、解決することができました。今回はこれより更に細かいものの抽出対象をしたいのです。 千葉県で抽出をすると、必要のない市まで抽出対象ででてきます。 それをコマンドプロンプトで千葉県を抽出する時に、必要のない特定の市を消す・または抜かすことはできますでしょうか? コマンドプロンプトで抽出した場合、テキストファイルの一行目と二行目の間に勝手に、 「□□□.TEXT」←抽出する前のファイル名 が作られてしまいます。 これをいちいち消すのが面倒くさいのです。 さらにその後開いて名前を付けて保存しなくてはならないのですが、デスクトップに「2005.06.11.dat」というように日付をダットファイルで保存できますでしょうか? 以上です。説明が下手で分かりにくいと思いますので、その都度、補足していきます。どうぞよろしくお願いいたします。

  • xp,2kでアカウント登録できる権利

    Win2000やXPでアカウント(ユーザ)を登録する為には、Administratorsグループに所属させるしか方法は無いのでしょうか? ローカルセキュリティ設定等で、Administratorsグループ以外に与えることはできないのでしょうか?

  • VBS初歩的質問

    すいません、色々調べましたが以下のことが思いつきませんのでご教示ください。 テキストファイルを一行ずつ読み込まして、文字列を検索するところまではできました。 文字列の検索は一行ずつ読み込ましたタイミングで、IF文で行っています。 そのテキストファイル内に同じ語句のものがある場合、始めのものだけを取得したい場合どうすればよいでしょうか。 一行ずつ読み込ましている関係上、2回IF文の条件にひっかかります。 具体例(上から5行あり1行目と4行目でIF文に入り、抽出してしまう) abc d e abc f

  • grepを使用して、対象テキスト内容を以下に結果のように出力したいので

    grepを使用して、対象テキスト内容を以下に結果のように出力したいのですが、 正規表現でどのようにすればよいかわかりません。 また、複数行に対してgrepして一行に出力することは可能でしょうか。 <対象テキスト内容> 1 111 333 2 444 555 <結果> 111 444

  • テキストファイルから最終行の抽出

    テキストファイルに出力された内容のうち、 最終行のみ抽出し、他のテキストファイルに 落とし込みたいと考えています。 DOSコマンドを使用して実現したいと思うのですが 良い方法などございましたら、ご教授ください。 宜しくお願い致します。 ※OSはWindows Server 2003を使用しています。

  • フィルター後の表示セルの値をテキストボックスへ

    おせわになります。 エクセルのVBAで、 フィルターを掛けて表示されている行のセルの値を、 ユーザーフォーム・テキストボックスへ表示させたいと思っています。 ユーザーフォームの「進む」「戻る」ボタンを使って、 表示行の値を1行づつ取得したいのですが、 ・表示されているセルの値取得 ・ボタンを押すごとに表示行のみ一行づつ移動 がわからずにつまづいています。 よろしくお願い致します。

  • 「Administratorsグループに属していない」と警告され、ソフトのインストールが出来ません。

    「Administratorsグループに属していない」と警告され、ソフトのインストールが出来ません。 使っているユーザアカウントは管理者です。 別のユーザアカウントと登録したり、パスワードに空白は使用しないようにしてみてますが、拒否されます。 ユーザアカウントが管理者であっても、Administratorsグループに属しているとは言えないのでしょうか。 OSはWindows XP Professional Service Pack 2 です。 どうしたらAdministratorsグループに属したユーザになれるのでしょうか。 ご教授ください。