Показать полную графическую версию : [решено] 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, обычная учётка без пароля с правами админа. Мне кажется здесь нужен немного другой скрипт или некая корректировка, чтоб он запускал с этими правами. Что мне делать помогите пожалуйста.
bat не запускается »Кодировка ANSI?
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 »
не запускается от имени администратора »
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 не забывайте использовать для определения ошибок.
reg import "Test\test.reg"
regedit /s "Test\test.reg" »Два раза для кармы?
Кодировка ANSI? »
Конечно.
%~dp0 »
Спасибо большое, совсем другое дело!
Эту команду вводить только перед файлом из директории? Например к командам "ren", "del", "rd" она не нужна?
P.S pause не забывайте использовать для определения ошибок. »
Хорошо, изучу эту команду.
Два раза для кармы? »
На тот момент когда писал, вроде были проблемы с тихой установкой, это как бы решало проблему. Может и ошибаюсь.
Эту команду вводить только перед файлом из директории? Например к командам "ren", "del", "rd" она не нужна? »
Это путь. Лучше даже так, чтоб наверочку:
rem если прога не консольная, оконная
start "" /D "%~dp0Test" "Soft.exe" /S
rem консоль
start /D "%~dp0Test" "consSoft.exe" /S
Конечно. »
Неверно. Должна быть OEM/866. Хоть для данного конкретного случая без разницы.
Спасибо большое, совсем другое дело!
Эту команду вводить только перед файлом из директории? Например к командам "ren", "del", "rd" она не нужна? »
При запуске непосредственно пакетного файла «От имени администратора» в новых ОС текущим каталогом становится не тот каталог, в котором находится пакетный файл, а каталог, в котором расположен исполняемый файл — в данном случае %SystemRoot%\System32. Это надо учитывать в коде пакетного файла, если Вы собираетесь его исполнять таким образом. Ровно так же, как и раньше требовалось учитывать, например, возможность запуска пакетного файла из сетевого размещения (по умолчанию командный процессор не позволяет использовать UNC-пути в качестве текущего каталога).
Просто запомните на будущее, как отченаш, что текущий каталог не есть каталог размещения файла. Хоть иногда может и совпадать.
Лучше даже так, чтоб наверочку: »
Правильно — использовать пару команд pushd/popd.
Эту команду вводить только перед файлом из директории? »
Когда вы выполняете файл *.bat от имени администратора, то рабочей директорией считается каталог "System32 (C:\Windows\System32)" а не та точка откуда запущен файл *.bat.
Например к командам "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"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.