1

У меня есть часть программного обеспечения, которая распространяется среди нескольких отделов для установки на ноутбуки с Windows 7. Они устанавливают программное обеспечение с флэш-накопителя, а затем им нужно запустить скрипт для правильной настройки программного обеспечения.

Поскольку скрипт изменяет файлы реестра и программные файлы, ему требуются права администратора. При запуске от имени администратора он попадает в папку System32, и у меня больше нет простого сценария доступа к файлам, которые необходимо скопировать с флэш-диска, просто потому, что я точно не знаю, какую букву диска он будет использовать на различные машины. Предыдущие установки были в Windows XP, а путь к файлу командного окна оставался в папке сценария.

Я нашел подобные вопросы здесь, и я уже попробовал Относительные пути, но он не может найти нужную папку на флэш-накопителе, или я не могу найти правильный способ отформатировать его.

3 ответа3

3

% ~ dp0 - это путь, содержащий пакетный файл.

Например: если ваш скрипт g:\scripts\batch.cmd, то% ~ dp0 эквивалентен g:\scripts\

Поэтому, если все ваши файлы находятся в папке g:\scripts\files, вы можете ссылаться на них с помощью% ~ dp0files\filename.fileextension

также% ~ d0 будет просто диском g: в приведенном выше примере

0

Простое двухстрочное решение здесь, в моем блоге.

http://chienyiing.blogspot.com/2014/04/batch-file-run-as-administrator-changes.html

@setlocal enableextensions
@cd /d "%~dp0"
0

Как насчет того, чтобы написать полный путь к папке, над которой вы работали, во временный текстовый файл - таким образом, просто прочитайте этот файл как администратор?

В качестве альтернативы, возможно, вы можете установить метку флэш-накопителя на что-то уникальное, а затем искать эту метку диска при повышении до уровня администратора?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .