2016-10-21 5 views
0

私は自分の仕事で、そしてほとんどの場合、ラップトップにいるときにファイアウォールを頻繁にアクティブにします。私は完全なキーボードレイアウトに慣れているので、一番上の行を使うのは苦痛です。ネットワークアダプタのプロパティに複数回アクセスし、静的IPアドレスを変更するのは楽しいことではありません。私は自分のコンピュータで使用されるスクリプトを作成したかっただけではありませんでした。私は他の技術者もそれにアクセスすることを望んでいました。あなたが望むなら弾丸であるスクリプト。私はちょうどコードの1つのセクションで助けが必要と私は残りを持っている。 私は、ネットアダプタインターフェイスをエコーし​​て、変更オプションを与える前に、どのアダプタを変更するかをユーザーに指示したいと思います。複数行変数

それも可能だ場合、私は知りませんが、これは、私は、ユーザー側で見て印刷したいものです。

NIC1

NIC2

NIC3

選択してくださいあなたのNIC:

これも可能ですか?どんな入力も感謝します。

概要: 各アダプタに数値を追加してすべてのアダプタを照会して印刷します。 ユーザーは、アダプタに関連付けられた値を入力します。 これは、インターフェース名を変数にダンプします。私はそこからそれを取る。

@echo off 
for /f "skip=3 tokens=1-4 delims= " %%a in ('netsh interface show interface') do (
    @echo %%d %%b %%a 
) 

これは私が欲しい情報が表示されますが、私はそれを今したいですか。 各行を自分自身の変数に表示させる方法はありますか?

Ex。変数(%% a、%% b、%% c、%% d)の代わりにトークンのすべての行を表示する代わりに、変数ごとにトークンごとに1行を表示する方法はありますか? 次に、ユーザーは特定の行の割り当てられた変数を入力して、残りのスクリプトによって変更されるネットワークアダプタを指定できます。

+0

「NETSH」コマンドの出力を解析します。 'netsh interface show interface' – Squashman

+2

あなたの質問を、与えられた入力と望む結果についての詳細で再検討してください。あなたの質問はあまりにも重大であり、重要でない主題については不必要な説明がたくさんあります。 – cyberponk

+0

私の放浪に役立つ要約を追加しました。 –

答えて

0

ループにカウンタを追加してインデックスを取得すると、後で を選択し、すべてのインターフェイスに変数を設定できます。

for /lは、利用可能なアダプタに応じてchoiceの有効なオプションを設定します。

@echo off 
setlocal enabledelayedexpansion 
set count=0 
for /f "skip=3 tokens=1-4 delims= " %%a in ('netsh interface show interface') do (
    set /a count+=1 
    set interface[!count!]=%%d %%b %%a 
    @echo !count! %%d %%b %%a 
) 
for /l %%i in (1,1,%count%) do set number=!number!%%i 
choice /c %number% /m "type index number" 
set index=%errorlevel% 
echo you choosed adapter %index%: !interface[%index%]! 
+0

ありがとう、私はカウンターについては分かりませんでした。 –