У меня есть SYSTEMINFO | НАЙТИ /I "ДОМЕН:", который показывает, является ли он частью домена или рабочей группы. Но я пытаюсь понять, как воспринимать результат этого, и может ли это быть чем-то другим, кроме Компании.ООО Перейти к:JoinWorkgroup. Я думаю, это должно выглядеть примерно так:

IF SYSTEMINFO | FIND /I "DOMAIN:" NOT = "Company.LLC" THEN GOTO :JoinWorkgroup
IF SYSTEMINFO | FIND /I "DOMAIN:" = "Company.LLC" THEN GOTO :NextVerification

Я могу заставить IF NOT EXIST работать с каталогами, но не могу понять, как связать его с результатами быстрых утилит.

1 ответ1

0

Для первого взгляда запустите следующую команду из командной строки:

for /F "tokens=1*" %G in ('SYSTEMINFO ^| FIND /I "DOMAIN:"') do @echo %G %H

Для использования в пакетном скрипте удвойте знак процента %: измените %G на %%G и %H на %%H Тогда применимый фрагмент кода в вашем пакетном скрипте может выглядеть следующим образом (оставьте интервал между строками, пожалуйста):

set "sDomain=WORKGROUP"
for /F "tokens=1*" %%G in ('SYSTEMINFO ^| FIND /I "DOMAIN:"') do set "sDomain=%%~H"
IF "%sDomain%"=="Company.LLC" (
    GOTO :NextVerification 
) ELSE (
    GOTO :JoinWorkgroup
)

или, если вы предпочитаете решение без какой-либо вспомогательной переменной:

for /F "tokens=1*" %%G in ('SYSTEMINFO ^| FIND /I "DOMAIN:"') do ( 
  IF "%%~H"=="Company.LLC" (
      GOTO :NextVerification 
  ) ELSE (
      GOTO :JoinWorkgroup
  )
)

Изменить (хотя принято): используйте %%~H с модификатором аргумента ~ , чтобы удалить окружающие кавычки ("), если таковые имеются.

Ресурс:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .