2017-03-07 7 views
0

ネットワークアダプタ名を検索して使用します。私が見つけたネットワークアダプタの名前を抽出する方法を見つけようとして使用しています次のスクリプトを使用した作業

@echo off 
netsh interface show interface | find "Connected" 
if errorlevel 1 goto # 
netsh interface set interface "Local Area Connection" disabled 
goto end 
:# 
netsh interface set interface "Local Area Connection" enabled 
:end 

ローカル」の代わりに名前(複数可)とエリア接続」を選択します。 理由は誰のアダプタも同じ名前ではなく、私はできるだけこの作業を自動化しようとしているからです。

ご協力いただきありがとうございます。

+2

あなたの***の質問***は何ですか? – abelenky

+0

@abelenky:「ローカルエリア接続」の代わりに、検出されたネットワークアダプタの名前を抽出し、その名前を使用するにはどうすればよいですか? –

答えて

0

ここでは、インターフェイス名を取得するためのより簡潔な方法を示します。一緒に

@echo off 
for /F "skip=3 tokens=1,2,3* delims= " %%G in ('netsh interface show interface') DO (
    IF "%%H"=="Disconnected" netsh interface set interface "%%J" enabled 
    IF "%%H"=="Connected" netsh interface set interface "%%J" disabled 
) 
pause 

FOR /Fコマンドをすべてを置く

for /F "skip=3 tokens=3*" %G in ('netsh interface show interface') do echo %%H 

NETSHコマンドの出力を解析しています。ヘッダー行をスキップしています。次に、出力を4つのメタ変数に分割します。

%%G   %%H   %%I    %%J 
Admin State State   Type    Interface Name 
------------------------------------------------------------------------- 
Enabled  Disconnected Dedicated  Wireless Network Connection 
Enabled  Connected  Dedicated  Local Area Connection 
+0

*泣き* 私はそれが何を意味するか知りたい! これは、接続されたインターフェイスの名前を変数 "J"として保存しますか? –

+0

@ChristopherMoore、私は 'FOR/F'コマンドが何をしているのかを説明して質問を更新しました。 – Squashman

+0

ありがとうございました。 あなたにPMのオプションが表示されません。それはここの特徴ではありませんか? –

0
for /F "tokens=4*" %%a in ('netsh interface show interface ^| more +2') do echo %%a %%b 
+0

'FOR/F'オプション' SKIP'を使ってトークンを 'TOKENS = 3 *'に変更すると、3つ目のトークンの後ろのすべてが%% bに割り当てられます。 – Squashman

+0

@Squashman:私の答えの質はすでに質問の質を上回っています。より良い回答を投稿したい場合は、先に進んでください。 – abelenky

+0

@abelenky:私は私の質問の質についてお詫び申し上げます。 私はバッチスクリプトについてもっと学びたいと思っていますが、私は助けてくれるソースを見つけるのが難しい特定の学習スタイルを持っています。これまでは、リバースエンジニアリング、結合、および調整を行い、自分がしたいことを得るために他の人のスクリプトを作成しました。 –

関連する問題