2017-05-25 12 views
0

コンピュータのIPアドレスをチェックし、一致する場合は特定のスクリプトを実行するこのコード行があります。以下のバッチスクリプトに "IF"を追加するには?

オリジナルスクリプト:

IPConfig|FindStr/IRC:"IPv4 .*: 10.0.50.">Nul 2>&1 && (Call sydprtcheck.bat) || (
IPConfig|FindStr/IRC:"IPv4 .*: 10.0.51.">Nul 2>&1 && Call sydprtcheck.bat) 

私はこのコード行を追加する必要があります。

if not exist "%USERPROFILE%\%username%10.txt" call sydprtcheck.bat 

それを行うための適切な方法は何ですか?

IPConfig|FindStr/IRC:"IPv4 .*: 10.0.50.">Nul 2>&1 && (if not exist "%USERPROFILE%\%username%10.txt" call sydprtcheck.bat || (
IPConfig|FindStr/IRC:"IPv4 .*: 10.0.51.">Nul 2>&1 && if not exist "%USERPROFILE%\%username%10.txt" call sydprtcheck.bat) 

スクリプトは、次の操作を行う必要があります:IPが範囲内であれば、コンピュータのIPアドレスの

の1-チェックは、テキスト場合は、特定のテキストファイル用

2-チェックしますテキストファイルが存在する場合、ファイルが存在しない、それはそれから行くIPアドレスが範囲内にない場合、バッチに

、4-を終了し、別のスクリプト

、3-を求めて1つの問題はしかしあり

for %%a in (50,51) do if not exist "%USERPROFILE%\%username%10.txt" (
    IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && call printmap1.bat 
) || ( 

goto Melprinters) 
echo. 

:Melprinters 
for %%a in (1,5) do if not exist "%USERPROFILE%\%username%11.txt" (
    IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && call printmap2.bat 
) || ( 

goto Wynprinters) 
echo. 

:Wynprinters 
for %%a in (60) do if not exist "%USERPROFILE%\%username%12.txt" (
    IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && call printmap3.bat 
) || ( 

goto Adlprinters) 
echo. 

:adlprinters 

for %%a in (100) do if not exist "%USERPROFILE%\%username%13.txt" (
    IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && call printmap4.bat 
) || ( 

goto settime) 
echo. 

:settime 
echo ------------------------------------------------------------------ 

:私はここに私のバッチスクリプトにコードを追加した別のIPアドレスの範囲

をチェックするために、次の行にすることのように見えるものです。 IP範囲が50,51であるかどうかをチェックする部分は無視され、IP範囲をチェックし、テキストファイルの存在のみをチェックします。

何か間違っていますか?

答えて

0

「正しい」は意見の問題です。

記述を追加した後、私が使用したい方法は

if exist "%USERPROFILE%\%username%10.txt" (set "runsub=") else (set "runsub=Y") 
for %%a in (50,51) do if not defined runsub IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && set "runsub=Y" 

if defined runsub call sydprtcheck.bat 

である - それが暗示されてではなく、明示ファイルは、サブルーチンによって作成することができると述べ、

for %%a in (50,51) do if not exist "%USERPROFILE%\%username%10.txt" (
    IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && call sydprtcheck.bat 
) 

と追加質問の場合

for %%a in (100) do if not exist "%USERPROFILE%\%username%10.txt" (
    IPConfig|FindStr/IRC:"IPv4 .*: 10.0.%%a.">Nul 2>&1 && call sydprtcheck22.bat 
) 

また、同じテキストファイルが使用されているかどうかの追加は明確ではありません。 forコントロールはおそらく冗長ですが、必要に応じて簡単に110を追加することができます。

+0

素晴らしい!それは、別のスクリプトを呼び出すための別のコード行を追加するにはどうすればいいですか?たとえば、IPアドレスが "10.0.100.xxx"の場合、sydprtcheck22.batが呼び出されますか? –

+0

ありがとうMagoo、はい.100のIP範囲でテキストファイルが異なります。 –

関連する問題