2013-11-20 88 views
0

前提:我不是程序员。简单的批处理脚本来检查域中的计算机名

我需要做一个简单的批处理脚本,检查在域中的计算机名称,如果这是正确的名称EXCUTE另一个批处理脚本(我已经话),否则检查下一台计算机的名字。

我TRID做一些事情,但它是非常难受。

If %computername%=VDSXXXXXXD 
    then c:\XXXXX\XXXX.bat 
    echo VDSXXXXD FOUND 
Else %computername%=VDSYYYYYD 
    then c:\XXXXXX\ZZZ.bat 
    echo VDYYYYYD FOUND 
Else %computername%=VDSYYYYYD 
    then c:\XXXXXX\ZZZZ.bat 
    echo VDSZZZZZD FOUND 
goto 
:End 

回答

2

你是相当接近的非程序员,这应该为你工作(虽然有与所有计算机名称的文本文件将是最优的。)

If "%computername%"=="VDSXXXXXXD" (
start c:\XXXXX\XXXX.bat 
echo VDSXXXXD FOUND 
goto :eof 
) 
if "%computername%"=="VDSYYYYYD" (
start c:\XXXXXX\ZZZ.bat 
echo VDYYYYYD FOUND 
goto :eof 
) 
if "%computername%"=="VDSYYYYYD" (
start c:\XXXXXX\ZZZZ.bat 
echo VDSZZZZZD FOUND 
goto :eof 
) 

:eof 
Exit 

,并应为你工作很好,

Mona

+0

非常感谢您的快速回复。在第一次之前,如果,我有什么东西?像CLS? – Jerax

+0

您可以添加一个'@echo off'作为第一行来抑制将所有这些行回显到控制台。 – rdtsc

1

这是一个简单而直接的做法。

如果名称和批处理文件之间存在关系,那么循环会更容易维护。

@echo off 
If %computername%=VDSXXXXXXD (echo VDSXXXXD FOUND & c:\XXXXX\XXXD.bat) 
If %computername%=VDSXXXXXXE (echo VDSXXXXE FOUND & c:\XXXXX\XXXE.bat) 
If %computername%=VDSXXXXXXF (echo VDSXXXXF FOUND & c:\XXXXX\XXXF.bat) 
If %computername%=VDSXXXXXXG (echo VDSXXXXG FOUND & c:\XXXXX\XXXG.bat) 
If %computername%=VDSXXXXXXH (echo VDSXXXXH FOUND & c:\XXXXX\XXXH.bat) 
+0

是的,有一个独特的relationiship.For例子:计算机名称:VDS00001D必然运行相关的脚本。 – Jerax

+0

什么是独特的关系?形容它。 – foxidrive

+0

为每台计算机(槽域名)我必须做运行另一个脚本,它运行了,我们在公司 – Jerax