如果有一个命令的结果,那么如果没有结果那么批处理脚本

时间:2013-10-04 14:47:49

标签: batch-file if-statement

我需要创建一个批处理脚本。

此脚本应该能够检测是否有结果。

我正在使用命令

dsquery domainroot -inactive 60

它告诉我所有已停用60天的帐户。

我运行相同的命令180天,但没有结果。

我运行命令60天,我得到了结果。

我需要创建退出代码以确定是否有任何结果。

每个错误级别为0(有和没有结果)。

是否有其他方法可以检测是否有结果。所以我可以把它变成IF语句。

3 个答案:

答案 0 :(得分:0)

这将至少查找两行结果,将1 2更改为1以仅查找一行,
dsquery domainroot -inactive 60|file.bat
if %errorlevel%==1 echo no results
if %errorlevel%==0 echo results

file.bat
for %%i in (1 2) do set /p a=
if defined a exit 0 /b
exit 1 /b

答案 1 :(得分:0)

应该按照你的要求做:

@echo off
dsquery domainroot -inactive 60 |find /v "" >nul
if errorlevel 1 (
     echo no result
  ) else (
     echo results found
  )

答案 2 :(得分:0)

我需要在使用脚本解决此问题后将此脚本添加到GFI。 下面的脚本允许您检测已停用60天的用户并报告结果。

如果您将此脚本上传到GFI MAX RMM,它将无法通过脚本检查并向您报告结果并将其转发到PSA系统(如果已配置)。

自动生成的门票让您知道客户并没有让您知道某人可能已离开公司,不知道该怎么做。

@echo off
REM This batch  script was created by som3guy.
REM Cleans up any previous runs of this batch command.
cd %temp%
Del Inactiveusers.txt
echo "The following user(s) have been inactive for 60 days or more:" > Inactiveusers.txt
REM Saves a file called Inactiveusers.txt to the %temp% dir for analysis.
dsquery user domainroot -inactive 60 >> Inactiveusers.txt
GOTO Check

REM Check the filesize and sets as a variable.
:CHECK
for %%A in (%temp%/Inactiveusers.txt) do set fileSize=%%~zA
REM Determines if there is data in the file or not. And sends to appropriate Function.
IF %filesize% == 59 (GOTO NonExistant) ELSE (GOTO Existant)


:Existant
REM The below command parses Inactiveusers.txt for data and sends it to GFI via ECHO
for /f "delims=" %%i in (%temp%/Inactiveusers.txt) do echo %%i
REM Exit code for GFI
exit 1000


:NonExistant
REM No inactive users.
REM Exit code for GFI
exit 0