• 締切済み

バッチファイルによるデータ参照

コンピュータ名がテキストファイル名(ファイル(1))となっているファイルがあります。 このファイルの先頭行にコンピュータ名に該当するIPアドレスを入れたいと考えています。 そのために、コンピュータ名⇔IPアドレス表を事前にテキストファイル等で用意してそのファイル(ファイル(2))からバッチファイル実行時にファイル(1)の先頭行へ書き込むことはできますでしょうか? もしできるのであればその方法(コマンドレベル)を教えていただければありがたいです。よろしくお願いいたします。

みんなの回答

  • heinell
  • ベストアンサー率35% (420/1172)
回答No.1

動作が今ひとつ理解できませんでしたが…推測を含めて OS:Windows コンピュータ名:ABC テキストファイル名:ABC.TXT テキストファイルの内容=:初期状態はからっぽ ファイル2の内容 ABC 192.168.0.1 DEF 192.168.0.2 GHI 192.168.0.3 ここである処理を実行 実行したのはコンピュータ名:ABC だからABC.TXTの先頭行に192.168.0.1が書き込まれる もしも同じ処理をコンピュータ名:DEFで実行したらDEF.TXTに192.168.0.2が書き込まれる こんな感じでしょうか? これを厳密にやろうとすると結構大変です。 特にコンピュータ名→ファイル名の取得が厄介。 WSH(VBscriptやJscript)・perl・Rubyなどの文字列処理機能がしっかりしたスクリプト言語を使った方がいいでしょう。 (WSHならWindowsだと最初からインストール済みなので別ソフトのインストールが不要で、コンピュータ名などの取得も割と簡単に可能) 妥協案としては ・ファイル名は固定である(例ではIP.TXT) ・ファイル末尾に情報が追加される ・実行されたパソコンの実際に使用しているIPアドレスが記録される(コンピュータ名は考慮しない) ・有効なネットワークカードは1つだけである ・記録されるデータにIPアドレス以外の多少余計な情報が入る というのでしたら、grepというDOSコマンドラインで動くツールだけ入手して http://www.vector.co.jp/soft/dos/util/se008484.html (実行するフォルダにgrep.exeだけコピー) ipconfig |grep "IP Address" >>IP.TXT これだけでOKです とすると IP Address. . . . . . . . . . . . : 192.168.0.2 という行が実行毎に追加されます。

jin0711
質問者

お礼

WSHで挑戦してみようと思います。 お手数でなければ多少アドバイスいいただければありがたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • バッチファイルでテキストファイル読込

    バッチファイルにてテキストファイルを一行読込みたいのですが、 「,」までの位置しか取得できません。 現状の該当箇所のコマンドと読込むテキストは以下になります。 [実行するコマンド] For /F "delims=" %%i in (read.txt) Do Call :Sub %%i :Sub set DATA=%1 echo %DATA% [読込むテキスト read.txt] "111","222","333","444" "111","222","333","444" [結果] "111" 結果の通り、カンマまでしか取得できていない状態です。 どなたかご教授の方、よろしくお願い致します。

  • バッチ作成について

    いつもお世話になっています。 今回もよろしくお願いします。 今、バッチ作成に苦戦しています。 あるログファイル(テキストファイル)から、特定の項目に合致した行と合致していない行を 別々のテキストファイルを作成し書き出すという内容です。 具体的には、ログファイルの中身ですが、 ~△送信元=IPアドレス△宛先=IPアドレス△prot=プロトコル△~ 上記のように1行づつ表示されいます。 その中で、「送信元=IPアドレス」と「prot=プロトコル」の両方が、 条件に合致している行と合致していない行を別々のテキストファイルを作成し、 書き出すという内容です。 今回は、あくまでバッチです。 漠然としていて申し訳ありませんが、 どういった方法があるのか、よろしくお願い致します。

  • ホスト名からIPアドレスを検索、設定するバッチファイルを作成したいです

    ホスト名からIPアドレスを検索、設定するバッチファイルを作成したいです。。 まず、下記の内容のようなテキストがあります。(仮に『a.txt』とします) ----------------------- ホスト名1 IPアドレス1 ホスト名2 IPアドレス2 ホスト名3 IPアドレス3 ホスト名4 IPアドレス4 … ----------------------- 処理としては、 バッチ叩く→ 叩いた端末のホスト名で『a.txt』内を検索→ → 同じ行のIPを抽出 →IP設定変更 →完 を目指しています。 同じ行のIPを抽出するところで躓いてしまいました…。 良いアイデアはありませんでしょうか。 よろしくお願いします!

  • バッチファイルでPC情報を取得する

    小規模な事務所ですが、遠隔地にあり詳しいユーザーもいないため、 PC情報の収集に支障をきたしています。 バッチファイルを実行してもらい、 情報を書き込んだテキストファイルを生成することができないかとの相談です。 必要な情報は: ・コンピュータ名 ・ワークグループ名(ドメインではありません) ・IPアドレス ・デフォルトゲートウェイ ・MACアドレス ・OS ・PCメーカー、型番 ・PC本体のシリアル ・Windows OSのシリアル ・Windowsの自動更新の設定がされているかどうか バッチレベルでできるのかどうか……。 可能であればスクリプトもしくはリンクをご提示ください。

  • ファイルを移動するためのバッチファイル

    テキストファイル(1行に1つのファイル名が書かれていて、ファイルの数だけの行があるテキスト)を読み込み それをもとに、パス指定した参照先ディレクトリより、1つずつファイルを取得し、 パス指定した保存先ディレクトリに保存していくという、ファイルを移動(コピー)するためのバッチファイルを作りたいのですが どのようなコマンドを記述すればよいでしょうか? (できれば、MS-DOSのバッチファイルだと助かります) 例 [list.txt] aaaaa bbbbb eeeee [参照先] aaaaa bbbbb ccccc ddddd eeeee ↓ [保存先] aaaaa bbbbb eeeee

  • バッチファイルが不正終了してしまう行をつきとめたい

    長いバッチファイルを実行中、途中で不正終了してしまう場合に、そのバッチファイルの何行目を実行した時に不正終了したのかをつきとめたいのですが、何か方法はあるでしょうか。 又は、現在バッチファイルの何行目であるかを表示するコマンド等無いでしょうか。 ご存知の方がおられましたら、宜しくお願い致します。

  • バッチファイルの長い行を2行に分けたい

    IP address を変更するため、WindowsXp で以下のバッチファイルを用いていました。 netsh interface ip set address name="ローカルエリア 接続" source=static addr=192.168.1.1XX mask=255.255.255.0 netsh interface ip set address name="ローカルエリア 接続" gateway=192.168.1.1 gwmetric=1 netsh interface ip set dns name="ローカルエリア 接続" source=static addr=192.168.1.1 しかし、Windows Vista にすると、右クリックして「管理者として実行」しないといけなくなり、さらに、2行目を実行すると、1行目で設定した IP address が 0.0.0.0 に書き換わってしまうようになりました。そこで、次のように1行目と2行目をあわせて1行にするときちんと実行できるようになりました。 netsh interface ip set address name="ローカルエリア 接続" source=static addr=192.168.1.1XX mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1 netsh interface ip set dns name="ローカルエリア 接続" source=static addr=192.168.1.1 しかし、1行が長すぎて見にくいです。MS DOS コマンドを2行に分ける書き方を教えてください。

  • バッチファイルでテキストファイル内の特定の文字列をコンピュータ名に置換

    バッチファイルでテキストファイル内の特定の文字列をコンピュータ名に置換したい バッチファイルの記述方法について教えて下さい。 テキストファイル内に特定の文字列が存在していた場合、その文字列をバッチファイルを実行するPCのコンピュータ名で置換するにはどのように記述したら良いでしょうか。 なおPCはWindowsXPを使用しています。

  • バッチファイルを使ってテキストファイルの任意の行を削除したい

    こんにちは。 バッチファイルを使って、テキストファイルの任意の行を削除したいのですが、可能でしょうか? 今困っているのは、あるファイルの1行目と2行目と最後の行を削除したいのですが、コマンドがわかりません。 いろいろ調べてみたのですが、わかりませんでした。 よろしくお願いします。

  • バッチによるテキストファイル操作について

    バッチファイルにて、テキストファイルの任意の行を削除したいのですが、コマンドはどのように記述すれば良いでしょうか? 初心者の為、方法が良くわかりません。  具体的には5000行のテキストファイルから1~20行目を削除したいと考えています。 ちなみにOSはXPと2000の両方です。 以上、どなたか宜しくお願いいたします。