2016-10-21 5 views
0

У меня проблемы с моим командным файлом. Я пытаюсь использовать BGInfo для отображения IP-адреса пользователей на своем рабочем столе. Мой код:«Синтаксис команды неверен» проблемы

If Not Exist "C:\Users\%username%\Information" 
(
    copy "\\heartbeat\shared\Information\bginfo.exe" "C:\Users\%username%\bginfo.exe"  
    copy "\\heartbeat\shared\Information\display.bgi" "C:\Users\%username%\display.bgi" 
) 
C:\Users\%username%\bginfo.exe "C:\Users\%username%\display.bgi" /timer:0 

Мне говорят, что синтаксис неверен в инструкции IF. Не знаю, в чем проблема.

+7

Переместить скобки вверх: 'Если не существует "C: \ Users \% имя пользователя% \ Информация"(' – Squashman

+0

И вы должны использовать '% USERPROFILE%' вместо 'C : \ Users \% username% ', поскольку каталог профиля пользователя может находиться на другом диске, чем диск' C: ', и может также находиться в другом каталоге, кроме' Users'. __USERPROFILE__ - это предопределенная переменная среды с указанием пути к дому пользователя каталог, см. [Переменные среды Windows] (https://en.wikipedia.org/wiki/Environment_variable#Windows). И в последней строке вашего кода используйте ''% userprofile% \ bginfo.exe'' с окружающими двойными кавычками поскольку имя учетной записи пользователя в пути также может содержать пробельный символ. – Mofi

ответ

0

Попробуйте это:

@Echo Off 
If Not Exist "%UserProfile%\Information\" MD "%UserProfile%\Information" 
If Not Exist "%UserProfile%\Information\bginfo.exe" (
    Copy "\\heartbeat\shared\Information\bginfo.exe" "%UserProfile%\Information") 
If Not Exist "%UserProfile%\Information\display.bgi" (
    Copy "\\heartbeat\shared\Information\display.bgi" "%UserProfile%\Information") 
Start "" /D"%UserProfile%\Information" bginfo.exe display.bgi /timer:0 /nocliprompt /silent 
Смежные вопросы