пакетный скрипт - сопоставление сетевых дисков по имени компьютера

Я пытаюсь изменить текущий сценарий, который выполняется как сценарий входа в систему с помощью объекта групповой политики домена. У меня есть особый случай, когда, если пользователи входят в определенную машину в домене, мне нужно сопоставить разные сетевые диски. В противном случае все другие компьютеры загружают основные сопоставления дисков.

Я безуспешно пробовал оба следующих действия:

echo %COMPUTERNAME% | %SYSTEMROOT%\System32\find.exe /i "VMMACHINE" > nul:
if %ERRORLEVEL% EQU 0 goto VMMACHINE-DRIVES

и я пробовал

if %COMPUTERNAME% EQU "VMMACHINE" goto VMMACHINE-DRIVES

Кто-нибудь может помочь?


person justlearning    schedule 13.06.2013    source источник
comment
Добро пожаловать в StackOverflow! Пожалуйста, прочитайте, как вы можете форматировать свои вопросы/ответы (например, код), это очень помогает stackoverflow.com/editing-help   -  person outcoldman    schedule 13.06.2013


Ответы (2)


Я думаю, вы хотите:

if "%COMPUTERNAME%" == "VMMACHINE" goto VMMACHINE-DRIVES

Добавьте ", чтобы интерпретировать %COMPUTERNAME% как строку, и == для сравнения строк.

person hax0r_n_code    schedule 13.06.2013
comment
Спасибо за помощь. Добавление около %COMPUTERNAME% сделало свое дело. - person justlearning; 13.06.2013

Синтаксис будет работать, если обе стороны заключены в двойные кавычки и регистр правильный для двух строк.

if "%COMPUTERNAME%" EQU "VMMACHINE" goto :VMMACHINE-DRIVES

Это тоже должно работать. Ваш код выглядел нормально, за исключением : on nul:, который может работать, но не часто используется. Здесь используется оператор уровня ошибки &&, а дополнение ||

echo %COMPUTERNAME% | find.exe /i "VMMACHINE" > nul && goto :VMMACHINE-DRIVES
person foxidrive    schedule 13.06.2013