如何从批处理命令中删除结果

时间:2017-06-09 15:29:49

标签: windows batch-file

我对编码很新,并试着环顾四周。我的目标是从网络上的计算机远程获取域控制器。我通过批处理使用的命令如下。我想过滤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

1 个答案:

答案 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,因为“启动”是一个命令并且看起来不对,决定权归您所有。