2013-06-25 45 views
1

我需要创建一个移动计算机名称对象在Active Directory中只有当计算机名称包含了一些字符串,如一个批处理文件:如果计算机名称包含

If %computername% contains "LAP" 
(dsmove "CN=%computername%,CN=Computers,DC=domain,DC=local" -newparent"OU=**Laptops**,OU=Computers,OU=Company,DC=domain,DC=local") 

    If %computername% contains "DESK" 
     (dsmove "CN=%computername%,CN=Computers,DC=domain,DC=local" -newparent "OU=**Desktops**,OU=Computers,OU=Company,DC=domain,DC=local") 

什么是正确的命令吗?

回答

5
set check_computername=%computername:LAP=% 
if "%check_computername%" EQU "%computername%" (
    echo computer name contains "LAP" 
) else (
    echo computer name does not contain "LAP" 
) 

你可以把你的东西在ifelse块。

不区分大小写的解决方案:

echo %check_computername%| Find /I "LAP" >nul 2>&1 || echo does not contain LAP 
echo %check_computername%| Find /I "LAP" >nul 2>&1 && echo does not contain LAP 
+0

它不工作。 – Nick

+0

你收到一个错误? – npocmaka

+0

有一个逻辑错误:将EQU更改为NEQ或修改ECHO – Stephan

0
@ECHO %COMPUTERNAME% | find /I "LAP" 
IF NOTERRORLEVEL 1 (dsmove ... OU=laptop ...) 
GOTO :EOF 
@ECHO %COMPUTERNAME% | find /I "DESK" 
IF NOTERRORLEVEL 1 (dsmove ... OU=desktop...) 
GOTO :EOF 
相关问题