Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Не удается найти указанную метку пакетного файла - 64BIT Windows 10 - CMD/BAT (http://forum.oszone.net/showthread.php?t=331856)

Deminart 13-12-2017 10:42 2784072

Не удается найти указанную метку пакетного файла - 64BIT Windows 10 - CMD/BAT
 
Всем привет! Товарищи, подскажите пожалуйста, где ошибка?

На Windows XP-7 х32-64 батник свою роль выполняет, на Windows 10 не хочет, возможно и на 8 аналогичная ситуация, не проверял...

bat
sc query | findstr /i "tvnserver"
goto exist%errorlevel%
:exist0
echo есть
exit
echo нет
:exist1
@set dpass=123
@if "%upass%" == "" (
@set upass=%dpass%
)
@cd %TMP%
@if exist "C:\Program Files (x86)" (
echo off f | xcopy /s/y %~dp0tightvnc-2.7.10-setup-64bit.msi %TMP%\tightvnc-2.7.10-setup.msi
@set bitx=64
) else (
echo off f | xcopy /s/y %~dp0tightvnc-2.7.10-setup-32bit.msi %TMP%\tightvnc-2.7.10-setup.msi
@set bitx=32
)
@echo off Система %bitx% бита. Установка tightvnc ....
@msiexec.exe /i tightvnc-2.7.10-setup.msi /quiet /norestart SET_USEVNCAUTHENTICATION=1 VALUE_OF_USEVNCAUTHENTICATION=1 SET_PASSWORD=1 VALUE_OF_PASSWORD=%upass% SET_VIEWONLYPASSWORD=1 VALUE_OF_VIEWONLYPASSWORD=%upass% SET_USECONTROLAUTHENTICATION=1 VALUE_OF_USECONTROLAUTHENTICATION=1 SET_CONTROLPASSWORD=1 VALUE_OF_CONTROLPASSWORD=%upass%
@echo.
IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT)
@if exist "C:\Program Files\TightVNC\" (
@echo off Готово. Пароль: %upass%
@del %TMP%\tightvnc-2.7.10-setup.msi
) else (
@del %TMP%\tightvnc-2.7.10-setup.msi
)
exit


Если запускать с ведением лога пишет:

log
C:\Users\ivanov\Desktop\0>sc query | findstr /i "tvnserver"

C:\Users\ivanov\Desktop\0>goto exist1
C:\Users\ivanov\Desktop\0\tightvnc-2.7.10-setup-64bit.msi
Скопировано файлов: 1.
off Система 64 бита. Установка tightvnc ....


C:\Users\ivanov\AppData\Local\Temp>IF EXIST "C:\Program Files (x86)" (GOTO 64BIT ) ELSE (GOTO 32BIT )


Если просто кидать батник в cmd:

cmd
C:\Users\ivanov\AppData\Local\Temp>C:\Users\demin\Desktop\0\tax_demin.bat

C:\Users\ivanov\AppData\Local\Temp>sc query | findstr /i "tvnserver"

C:\Users\ivanov\AppData\Local\Temp>goto exist1
C:\Users\ivanov\Desktop\0\tightvnc-2.7.10-setup-64bit.msi
Скопировано файлов: 1.
off Система 64 бита. Установка tightvnc ....

C:\Users\ivanov\AppData\Local\Temp>IF EXIST "C:\Program Files (x86)" (GOTO 64BIT ) ELSE (GOTO 32BIT )
Не удается найти указанную метку пакетного файла - 64BIT

C:\Users\ivanov\AppData\Local\Temp>

mwz 13-12-2017 11:15 2784079

Цитата:

Цитата Deminart
IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT) »

А в тексте батника нет ни метки
:64BIT
ни метки
:32BIT

Deminart 13-12-2017 16:21 2784148

Цитата:

Цитата mwz
А в тексте батника нет ни метки
:64BIT
ни метки
:32BIT »

Да спасибо, их проглядел.

Но с метками пока получилось, пока получилось только так, что всегда ставится х32

Работает и без них т.е. если убрать

IF EXIST "%PROGRAMFILES(X86)%" (GOTO 64BIT) ELSE (GOTO 32BIT) и метки :32BIT и :64BIT

Но, на 10-ке работает только от имени админа...

Всё это добро лежит в папке netlogon, на котроллере домена и запускается через сценарий входа...

Насколько я знаю, в батнике можно прописать запуск от имени другого пользователя, через runas /savecred /user: и т.д., но в нём придётся вводить пароль, такой вариант не подходит, пусть даже это будет единожды.

Deminart 14-12-2017 08:33 2784269

Всем спасибо, в общем сейчас всё работает без меток. А на Win 10 запускаю bat от админа через скрипт: CreateObject("Shell.Application").ShellExecute "service.bat", "", "", "runas", 1


Время: 07:01.

Время: 07:01.
© OSzone.net 2001-