我对编码很新,并试着环顾四周。我的目标是从网络上的计算机远程获取域控制器。我通过批处理使用的命令如下。我想过滤nltest的结果,只显示DC名称。我不想要连接状态和标志。
:Start
color 02
cls
@echo off
Echo.
Echo Domain Controller Finder
Echo.
Set /P Computer=Enter the Asset ID:
If "%Computer%"== "" goto BadName
nltest /sc_query:<Domain_Name> /server:%Computer%
pause
Goto End
:BadName
Cls
Echo.
Echo You have entered an incorrect name or left this field blank
Echo Please enter a valid Name or press Ctr-C to exit.
Echo.
Pause
Goto Start
:End
答案 0 :(得分:0)
我猜测DC名称以\\
开头,所以你可以试试这个:
@ECHO OFF
:Begin
SET/P "AssetID=Enter the Asset ID: "
IF "%AssetID%"=="" GOTO BadName
SET "DCName="
FOR /F "TOKENS=1* DELIMS=\" %%A IN (
'nlest /sc_query:<Domain_Name> /server:%AssetID%^|FIND "\\"'
) DO SET "DCName=\\%%B"
IF DEFINED DCName (ECHO %%DCName%% = %DCName%
PAUSE & GOTO End)
:BadName
请注意。我将:Start
更改为:Begin
,因为“启动”是一个命令并且看起来不对,决定权归您所有。