増分変数を使用したバッチファイルのFORループ

ビクター

添付された3つのインターフェイス記述をカスタム変数として割り当て、その後、これらの各変数を出力することになっているバッチファイルを作成しました。最終的には、印刷する代わりに、これらの変数を使用して出力に応じてインターフェイス自体を構成する予定ですが、今のところ、変数が正しく割り当てられているのを見て満足しています。

これが私がこれに取り組んでいる方法です:

set cnt=1
for /f "tokens=12,13*" %%f in ('ipconfig /all^|findstr "Description"') do (
  setlocal enabledelayedexpansion
  set "mess.!cnt!.name=%%h"
  endlocal
  set /a cnt+=1
  )
echo mess.0.name
for /l %%t in (1,1,%cnt%) do (
  echo mess.%%t.name
  echo "%mess.0.name%"
  )
pause

delaydexpansionを使用して考えられるほぼすべてのアプローチを実行しましたが、バッチファイルでmess.cnt.nameをループごとに増分する変数と見なすことができません。

出力のサンプルを次に示します。

C:\Users\admin\Desktop>test1.bat

C:\Users\admin\Desktop>set cnt=1

C:\Users\admin\Desktop>for /F "tokens=12,13*" %f in('ipconfig /all|findstr "Des
cription"') do (
setlocal enabledelayedexpansion
  set "mess.!cnt!.name=%h"
  endlocal
  set /a cnt+=1
)

C:\Users\admin\Desktop>(
setlocal enabledelayedexpansion
  set "mess.!cnt!.name=AirLink USB Ethernet/RNDIS"
  endlocal
  set /a cnt+=1
)

C:\Users\admin\Desktop>(
  setlocal enabledelayedexpansion
  set "mess.!cnt!.name=LAN9500 USB 2.0 to Ethernet 10/100 Adapter"
  endlocal
  set /a cnt+=1
)

C:\Users\admin\Desktop>(
  setlocal enabledelayedexpansion
  set "mess.!cnt!.name=Intel(R) 82579LM Gigabit Network Connection"
  endlocal
  set /a cnt+=1
)

C:\Users\admin\Desktop>echo mess.0.name
mess.0.name

C:\Users\admin\Desktop>for /L %t in (1 1 4) do (
echo mess.%t.name
echo "Intel(R) 82579LM Gigabit Network Connection"
)
C:\Users\admin\Desktop>(
echo mess.1.name
echo "Intel(R) 82579LM Gigabit Network Connection"
)
mess.1.name
"Intel(R) 82579LM Gigabit Network Connection"

C:\Users\admin\Desktop>(
echo mess.2.name
 echo "Intel(R) 82579LM Gigabit Network Connection"
)
mess.2.name
"Intel(R) 82579LM Gigabit Network Connection"

C:\Users\admin\Desktop>(
echo mess.3.name
 echo "Intel(R) 82579LM Gigabit Network Connection"
)
mess.3.name
"Intel(R) 82579LM Gigabit Network Connection"

C:\Users\admin\Desktop>(
echo mess.4.name
 echo "Intel(R) 82579LM Gigabit Network Connection"
)
mess.4.name
"Intel(R) 82579LM Gigabit Network Connection"

C:\Users\admin\Desktop>pause
Press any key to continue . . .

これに関するどんな助けでも大いに感謝されるでしょう。私はこれで何日も壁に頭を打ちつけてきました。

ビクター

近眼のマグー
@ECHO OFF
SETLOCAL
set cnt=0
for /f "tokens=1,14*" %%f in ('ipconfig /all^|findstr "Description"^|find /n /v ""') do (
  set "mess%%fname=%%h"
  set /a cnt+=1
  )
echo %mess[1]name%
for /l %%t in (1,1,%cnt%) do (
  CALL echo mess[%%t]name=%%mess[%%t]name%%
  )
SET mess

GOTO :EOF

基本的に、endlocalはの設定をバックアウトしてmess.?.nameおり、古典的な治療法はコードブロックでは機能しません。

同様に、delayedexpansion表示するように設定するか、表示した構文を使用する必要があるレポートループ(別の方法を追加しました)

さてsetlocal/endlocal、ルーチン全体に1つだけ配置し、コードブロックで切り替えない場合は、より簡単に機能した可能性があります。

または-内部サブルーチンを呼び出して、処理を行うこともできますset

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

変数を使用したバッチ ファイルの FOR ループ

分類Dev

バッチファイルのforループの変数を変更します

分類Dev

バッチファイル-可変数の変数でxcopyを使用してループしますか?

分類Dev

XMPを使用したモジュールファイルのバッチ変換

分類Dev

バッチファイルの値をループ変数に保存して使用する方法

分類Dev

バッチファイルを使用したforループ内の条件の場合

分類Dev

for / Fループを使用したCPUクエリのバッチファイル

分類Dev

'goto'を使用したバッチファイルの無限ループ

分類Dev

forループの変数としてファイル入力を使用してバッチファイルを作成する方法

分類Dev

スケジュールされたタスクを作成して、システムファイルの増分バックアップを毎日作成します

分類Dev

バッチファイル-csvをループし、2つの列からパス変数を作成します

分類Dev

名前1、名前2の増分フォルダー名でフォルダーを作成するためのバッチファイル

分類Dev

バッチファイルを使用したSQLサーバーの自動バックアップ

分類Dev

バッチForループは、ワイルドカードとして複数の疑問符を使用して誤ったファイルを返します

分類Dev

サブフォルダーをループし、サブフォルダー名を変数として使用するバッチファイル

分類Dev

バッチファイルの変数をVBスクリプトファイルに使用する方法

分類Dev

ネストされたループで変数%% fを使用したバッチファイルが失敗する

分類Dev

番号を増やして複数のtxtファイルを作成し、バッチファイル(.bat)を使用してそれらに書き込む方法

分類Dev

MSバッチファイルを使用して、プログラムの出力を変数に割り当てます。

分類Dev

txtファイルを使用してバッチスクリプトの変数を入力する方法。次に、ループして、テキストファイル内のすべての名前を変数として使用します。

分類Dev

バッチファイル内で変数が増加しない

分類Dev

バッチスクリプトを使用して、そのフォルダー内に設定された数のファイルがある複数のフォルダーの名前を変更するにはどうすればよいですか?

分類Dev

バッチファイルを使用した日付形式の変換

分類Dev

ファイルシステムのバッチスクリプト:別のネストされたforループでのforループ変数の使用

分類Dev

ファイルを連結するときのbashスクリプトでの増分変数の使用

分類Dev

バッチファイル-forループで変数値を変更する

分類Dev

CMake変数を使用したXMLファイルの生成/パッチ適用

分類Dev

.NETを使用したファイルバックアップの最良のアプローチ

分類Dev

バッチファイルは、テキストファイルの行をループ内の単一変数として設定します

Related 関連記事

  1. 1

    変数を使用したバッチ ファイルの FOR ループ

  2. 2

    バッチファイルのforループの変数を変更します

  3. 3

    バッチファイル-可変数の変数でxcopyを使用してループしますか?

  4. 4

    XMPを使用したモジュールファイルのバッチ変換

  5. 5

    バッチファイルの値をループ変数に保存して使用する方法

  6. 6

    バッチファイルを使用したforループ内の条件の場合

  7. 7

    for / Fループを使用したCPUクエリのバッチファイル

  8. 8

    'goto'を使用したバッチファイルの無限ループ

  9. 9

    forループの変数としてファイル入力を使用してバッチファイルを作成する方法

  10. 10

    スケジュールされたタスクを作成して、システムファイルの増分バックアップを毎日作成します

  11. 11

    バッチファイル-csvをループし、2つの列からパス変数を作成します

  12. 12

    名前1、名前2の増分フォルダー名でフォルダーを作成するためのバッチファイル

  13. 13

    バッチファイルを使用したSQLサーバーの自動バックアップ

  14. 14

    バッチForループは、ワイルドカードとして複数の疑問符を使用して誤ったファイルを返します

  15. 15

    サブフォルダーをループし、サブフォルダー名を変数として使用するバッチファイル

  16. 16

    バッチファイルの変数をVBスクリプトファイルに使用する方法

  17. 17

    ネストされたループで変数%% fを使用したバッチファイルが失敗する

  18. 18

    番号を増やして複数のtxtファイルを作成し、バッチファイル(.bat)を使用してそれらに書き込む方法

  19. 19

    MSバッチファイルを使用して、プログラムの出力を変数に割り当てます。

  20. 20

    txtファイルを使用してバッチスクリプトの変数を入力する方法。次に、ループして、テキストファイル内のすべての名前を変数として使用します。

  21. 21

    バッチファイル内で変数が増加しない

  22. 22

    バッチスクリプトを使用して、そのフォルダー内に設定された数のファイルがある複数のフォルダーの名前を変更するにはどうすればよいですか?

  23. 23

    バッチファイルを使用した日付形式の変換

  24. 24

    ファイルシステムのバッチスクリプト:別のネストされたforループでのforループ変数の使用

  25. 25

    ファイルを連結するときのbashスクリプトでの増分変数の使用

  26. 26

    バッチファイル-forループで変数値を変更する

  27. 27

    CMake変数を使用したXMLファイルの生成/パッチ適用

  28. 28

    .NETを使用したファイルバックアップの最良のアプローチ

  29. 29

    バッチファイルは、テキストファイルの行をループ内の単一変数として設定します

ホットタグ

アーカイブ