【问题标题】:Skip Find Script in Batch if text not found如果未找到文本,则跳过批量查找脚本
【发布时间】:2014-02-21 01:22:15
【问题描述】:

我有一个脚本应该通过文本文件查看其工作站 ID,然后将其工作站 ID 旁边的用户分配为本地管理员。

但是,如果找不到计算机名,我希望它只是转到文件末尾,然后像成功完成一样退出。

我环顾四周,但我真的想不出我会用什么词在 google 中搜索。

非常感谢任何帮助。

@echo off
setlocal enabledelayedexpansion
FIND /i "%computername%" < "C:\Build\Elevate\AccessElevations.txt" >%temp%\computer.txt
FOR /F "tokens=1-6 delims=," %%a in (%temp%\computer.txt) DO (
set school=%%a
set computerid=%%b
set Model=%%c
set Serial=%%d
set user=%%e
set access=%%f
If /i "%%f" EQU "Admin" goto Elevate
If /i "%%f" EQU "NoAdmin" goto End
:Elevate
set desc=!school! - !computerid! - !model! - !serial! - !user!
echo.
echo Now creating local admin account for !user! on !computerid!
echo.
echo Description: !desc!
echo.
net localgroup Administrators "GBN\!user!" /add
net config server /srvcomment:"!desc!"
)

:End

【问题讨论】:

  • @unclemeat 它失败了,因为它在列表中找不到工作站名称,但 Usr:Magoo 的想法是正确的,感谢您的帮助。

标签: batch-file if-statement for-loop find


【解决方案1】:

FIND /i ... 行之后

if errorlevel 1 goto :eof

如果find 建立的错误级别不为零(零表示“找到它”),则转到特殊标签:eof,CMD 将其理解为 EndOfFile。

【讨论】:

  • 感谢@Magoo,这正是我想要的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
  • 2022-08-09
相关资源
最近更新 更多