0

次のようなファイルがあります。

10.4.33.22 ocean,cat,dog,monkey
33.55.66.77 rabbit,piggy

IPアドレスをループするforループを作成しました。

for /F %%i in (%File_dbname%) do ( 
   echo %%i database >> %output-file%
)

最初の IP アドレスには 4 つのインスタンスがあります。

別の for ループを使用して、これらのインスタンス/IP アドレスごとにループすることを考えていました。

最初のIPアドレス間のスペースをスキップして、monkeyに当たるまで海に行き、monkeyの後にスペースが検出されると次の行に移動する区切り文字の使用方法がわかりません。

さらにアドバイスをお願いします、ありがとう。

4

1 に答える 1

2

説明した方法で for ループをネストできます。次に例を示します。

for /F "tokens=1*" %%i in (%File_dbname%) do ( 
    for %%A in (%%j) do (
        echo %%i %%A >> %output-file%
    )
)

あなたが言及したサンプルデータを使用すると、結果は次のようになります。

10.4.33.22 ocean 
10.4.33.22 cat 
10.4.33.22 dog 
10.4.33.22 monkey 
33.55.66.77 rabbit 
33.55.66.77 piggy

それはあなたが探しているものですか、それとも少なくともそれがどのように機能するかを見ることができますか?

スイッチなどのforないループ/fでは、カンマは区切りとして扱われます。for /fループでは、means"tokens=1*"%%i最初のトークン (スペースまでのすべてを意味する) であり、%%jは に含まれないすべてのもの%%iです。

于 2013-03-05T18:59:16.900 に答える