2017-05-25 75 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范围的文本文件是不同的。 –