2017-03-23 8 views
1

Dears、バッチ - IF /ファイル/比較で

私は私の信仰を失ったので、私を助けることを望んでいます。 私が何をしたかを見せて、それから私が何をする必要があるのか​​を説明しましょう。

@echo off  
echo "Which Site do you want to check?" 
set /p ans="Site: " 
echo. 

for /f "tokens=1,2,3 delims=," %%A IN (animals.csv) DO if %%A==%ANS% (ping %%B AND ping %%C) 
echo. 
pause 
echo. 
cls 
goto menu 
  1. ユーザーは、ANSの変数に格納されます何かの動物の名前を入れる必要があります。
  2. スクリプトはanimals.csvで、その動物に割り当てられているIPアドレスをチェックする必要があります。
  3. マッチ後、スクリプトは次の列のIPアドレスをpingして、結果を確認する必要があります。 PS:両方のファイルがすべて同じフォルダにあります。

問題は、animals.txtには3つの列と多数のレコードがあります。 変数を比較する時点までスクリプトを作成できました。その後、作業を​​中止しました。

のは、動物のファイルがそのようになっていることを言ってみましょう:私は立ち往生、私はどのようにそれを行うには気手掛かりを持っていないので

cat,111.111.111.111,122.122.122.122 
dog,222.222.222.222,233.233.233.233 
horse,333.333.333.333,344.344.344.344 

は、私を助けて。

答えて

1

あなたのスクリプトは、(SS64.comを参照)&

ANDを交換する。しかし、私はわずかに異なるロジックを提案させたときに、動作します:

@echo off  
echo "Which Site do you want to check?" 
set /p ans="Site: " 
echo. 

for /f "tokens=1,2,3 delims=," %%A IN ('type animals.csv^|findstr /b "%ans%,"') DO (
    ping %%B 
    ping %%C 
) 
echo. 
pause 

findstrパラメータ/bは "文字列で始まる必要がある" という意味 - 防止をmaddogdogと認識されます。
検索文字列内の末尾のカンマは、catfishcatと認識されないようにします。
検索を大文字と小文字を区別しないようにするには、/iを追加することができます(catCatが認識されます)。

+0

SOOOOOOありがとう、私は何時間も何かをしていたので、私の脳は散歩に行くことにしました:) – mgj1993

+0

よく...長く戻ってきます。 – Stephan