2017-05-25 34 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) 

腳本應該做到以下幾點:

1-檢查計算機的IP地址,如果IP範圍內,則對特定文本文件

2 - 如果文本檢查文件不存在,那麼它調用另一個腳本

3-如果文本文件存在,那麼退出批

4-如果IP地址不在範圍內,則進入下一行來檢查我已經添加代碼到我的批處理腳本這裏是它看起來像一個不同的IP地址範圍

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 ------------------------------------------------------------------ 

有一個問題,雖然。檢查50,51個IP範圍的部分工作則腳本忽略檢查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範圍的文本文件是不同的。 –

相關問題