具有两个条件和一个循环的批处理文件
Batch File with two conditions and a loop
让我们假设我编写脚本的唯一方法是通过批处理文件。
我有一个包含一长串命令的批处理文件,但是,我需要包括两个意外情况:
- 需要在域中(我们将在本示例中使用 .com)
- 必须有一个非典型 IP(意味着 192 未在域中使用,但在加入之前使用,而不是 169,因为 DHCP 分配延迟)。
我希望将其与其余代码保存在同一个批处理文件中。我试过将一些命令缝合在一起,但通常会出现语法错误。我能够使用 %ERRORLEVEL% 使 IP 部分工作,但是,我只能找出搜索单个 IP 掩码的方法。
这是一个非常错误的基本代码:
@ECHO off
for /F "tokens=1*" %%G in ('SYSTEMINFO ^| FIND /I "DOMAIN:"') do (
IF %%G == ".com" (
GOTO :IPCheck
) ELSE ( GOTO :NoRun
:IPCheck
ipconfig | find /i "192." "169."
if %ERRORLEVEL% == 0 goto IPCheck
REM Domain address is configured and will continue script.)
pause
)
find
无法查找多个搜索字符串。 Findstr
是。有关详细信息,请参阅 findstr /?
。
您甚至不需要任何类型的循环:
@echo off
ipconfig | find "IPv4" | findstr /c:" 192." /c:" 169." >nul && goto :NoRun
systeminfo | findstr /RBE "Domain:.*\.com" >nul || goto :NoRun
echo all ok. Insert payload here...
goto :eof
:NoRun
echo this system doesn't meet the prerequisites.
让我们假设我编写脚本的唯一方法是通过批处理文件。
我有一个包含一长串命令的批处理文件,但是,我需要包括两个意外情况:
- 需要在域中(我们将在本示例中使用 .com)
- 必须有一个非典型 IP(意味着 192 未在域中使用,但在加入之前使用,而不是 169,因为 DHCP 分配延迟)。
我希望将其与其余代码保存在同一个批处理文件中。我试过将一些命令缝合在一起,但通常会出现语法错误。我能够使用 %ERRORLEVEL% 使 IP 部分工作,但是,我只能找出搜索单个 IP 掩码的方法。
这是一个非常错误的基本代码:
@ECHO off
for /F "tokens=1*" %%G in ('SYSTEMINFO ^| FIND /I "DOMAIN:"') do (
IF %%G == ".com" (
GOTO :IPCheck
) ELSE ( GOTO :NoRun
:IPCheck
ipconfig | find /i "192." "169."
if %ERRORLEVEL% == 0 goto IPCheck
REM Domain address is configured and will continue script.)
pause
)
find
无法查找多个搜索字符串。 Findstr
是。有关详细信息,请参阅 findstr /?
。
您甚至不需要任何类型的循环:
@echo off
ipconfig | find "IPv4" | findstr /c:" 192." /c:" 169." >nul && goto :NoRun
systeminfo | findstr /RBE "Domain:.*\.com" >nul || goto :NoRun
echo all ok. Insert payload here...
goto :eof
:NoRun
echo this system doesn't meet the prerequisites.