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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   [решено] bat не запускается от имени администратора (http://forum.oszone.net/showthread.php?t=326459)

LaFleur 03-05-2017 03:24 2733623

bat не запускается от имени администратора
 
Доброго времени суток. Ребята, вот уже длительное время использую батник (.bat) для установки программ, копирования файлов и редактирования реестра. Выглядит он у меня примерно так:
Код:

title Test
Test\Soft.exe/S
reg import "Test\test.reg"
regedit /s "Test\test.reg"
xcopy "Test\Files\" "%USERPROFILE%\AppData\Local\" /S /E /H /R /Y
call Test2.bat
exit
и т.д.

Сейчас понадобилось копировать и переименовывать файлы в папке "Program Files". И в этом проблема, не хватает прав администратора. Запускал этот батник от администратора (через правую кнопку) он срабатывал в обычном режиме безрезультатно. Команды новые проверял отдельно, всё работает. Запускал командную строку от админа и вбивал каждую команду отдельно, всё ок. Windows 10 Home, обычная учётка без пароля с правами админа. Мне кажется здесь нужен немного другой скрипт или некая корректировка, чтоб он запускал с этими правами. Что мне делать помогите пожалуйста.

Nordek 03-05-2017 04:35 2733626

Цитата:

Цитата LaFleur
bat не запускается »

Кодировка ANSI?

Цитата:

Цитата LaFleur
Код:

title Test
Test\Soft.exe/S
reg import "Test\test.reg"
regedit /s "Test\test.reg"
xcopy "Test\Files\" "%USERPROFILE%\AppData\Local\" /S /E /H /R /Y
call Test2.bat

exit »



Цитата:

Цитата LaFleur
не запускается от имени администратора »

Код:

title Test
"%~dp0Test\Soft.exe" /S
reg import "%~dp0Test\test.reg"
regedit /s "%~dp0Test\test.reg"
xcopy "%~dp0Test\Files" "%USERPROFILE%\AppData\Local\" /S /E /H /R /Y
call "%~dp0Test2.bat"
exit

P.S pause не забывайте использовать для определения ошибок.

Цитата:

Цитата LaFleur
reg import "Test\test.reg"
regedit /s "Test\test.reg" »

Два раза для кармы?

LaFleur 03-05-2017 12:51 2733746

Цитата:

Цитата Nordek
Кодировка ANSI? »

Конечно.
Цитата:

Цитата Nordek
%~dp0 »

Спасибо большое, совсем другое дело!
Эту команду вводить только перед файлом из директории? Например к командам "ren", "del", "rd" она не нужна?
Цитата:

Цитата Nordek
P.S pause не забывайте использовать для определения ошибок. »

Хорошо, изучу эту команду.
Цитата:

Цитата Nordek
Два раза для кармы? »

На тот момент когда писал, вроде были проблемы с тихой установкой, это как бы решало проблему. Может и ошибаюсь.

x0r 03-05-2017 14:36 2733770

Цитата:

Цитата LaFleur
Эту команду вводить только перед файлом из директории? Например к командам "ren", "del", "rd" она не нужна? »

Это путь. Лучше даже так, чтоб наверочку:
Код:

rem если прога не консольная, оконная
start "" /D "%~dp0Test" "Soft.exe" /S
rem консоль
start /D "%~dp0Test" "consSoft.exe" /S


Iska 03-05-2017 16:53 2733808

Цитата:

Цитата LaFleur
Конечно. »

Неверно. Должна быть OEM/866. Хоть для данного конкретного случая без разницы.

Цитата:

Цитата LaFleur
Спасибо большое, совсем другое дело!
Эту команду вводить только перед файлом из директории? Например к командам "ren", "del", "rd" она не нужна? »

При запуске непосредственно пакетного файла «От имени администратора» в новых ОС текущим каталогом становится не тот каталог, в котором находится пакетный файл, а каталог, в котором расположен исполняемый файл — в данном случае %SystemRoot%\System32. Это надо учитывать в коде пакетного файла, если Вы собираетесь его исполнять таким образом. Ровно так же, как и раньше требовалось учитывать, например, возможность запуска пакетного файла из сетевого размещения (по умолчанию командный процессор не позволяет использовать UNC-пути в качестве текущего каталога).

Просто запомните на будущее, как отченаш, что текущий каталог не есть каталог размещения файла. Хоть иногда может и совпадать.

Цитата:

Цитата x0r
Лучше даже так, чтоб наверочку: »

Правильно — использовать пару команд pushd/popd.

Nordek 03-05-2017 17:03 2733811

Цитата:

Цитата LaFleur
Эту команду вводить только перед файлом из директории? »

Когда вы выполняете файл *.bat от имени администратора, то рабочей директорией считается каталог "System32 (C:\Windows\System32)" а не та точка откуда запущен файл *.bat.

Цитата:

Цитата LaFleur
Например к командам "ren", "del", "rd" она не нужна? »

Код:

REN "%~dp0Test\test1.exe"
DEL "%~dp0Test\test2.txt"
RD /S /Q "%~dp0Test\Test2"

Можно поступить иначе, оставить как есть:
Код:

REN "Test\test1.exe"
DEL "Test\test2.txt"
RD /S /Q "Test\Test2"

но в начало добавить:
Код:

CD %~dp0
т.е
Код:

CD %~dp0

REN "Test\test1.exe"
DEL "Test\test2.txt"
RD /S /Q "Test\Test2"



Время: 00:11.

Время: 00:11.
© OSzone.net 2001-