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" )

正しいコマンドは何ですか?

4

5 に答える 5

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

あなたはあなたのものを入れてifブロックelseすることができます。

大文字と小文字を区別しないソリューション:

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
于 2013-06-25T08:08:22.970 に答える
1
@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
于 2013-06-25T17:34:58.700 に答える
0

論理を逆にする必要があります。大文字と小文字を区別しない解決策は次のとおりです。

setlocal enabledelayedexpansion    
set nameSearch=Lap
set checkComputerName=!computername:%nameSearch%=!
if "%checkComputerName%" NEQ "%computername%" (
  echo %nameSearch% found in %computername%
) else (
  echo %nameSearch% not found in %computername%
)
于 2019-04-25T19:17:20.213 に答える