Avatar-Lion |
04-09-2018 22:00 2829947 |
Как подставить относительный путь в BAT-файл?
Полчаса уже мучаю Гугл и Яндекс, но то ли я дурак, то ли лыжи не едут... Задача банальная: ВАТ-файл запускается из разных мест, т.е. путь к нему все время разный. Цель у ВАТ-файла очень простая: удалить несколько файлов и скопировать взамен них новые. Например:
Цитата:
Erase "C:\Program Files\desktop.ini"
XCopy "%~dp0\Program Files\desktop.ini" "C:\Program Files\desktop.ini"
|
(вместо %~dp0 должна быть текущая буква флэшки)
Пробовал также точку и %CD%, но они также не дают эффекта. Вроде абсолютно примитивное действие, но ничего не получается...
|
Avatar-Lion, относительным путь может быть только относительно чего-то. Можно, например, пытаться использовать путь относительно самого пакетного файла. Где он расположен по отношению к тому, что требуется представить с относительным путём?
|
Avatar-Lion |
04-09-2018 22:26 2829952 |
Цитата:
Цитата Iska
Где он расположен по отношению к тому, что требуется представить с относительным путём? »
|
Да где угодно. Если надо, могу его положить рядом с теми же папками, содержимое которых буду копировать.
Суть просто в том, что наверняка потребуются права администратора, чтобы удалять файлы в системных каталогах и копировать туда новые файлы. Я планировал запускать ВАТ-файл по правой кнопке (от имени администратора). Или это не будет работать?
|
Petya V4sechkin |
04-09-2018 22:27 2829953 |
Avatar-Lion, ну так вы можете для тестирования просто вставить эхо:
Код:
Echo %~dp0
Echo %~d0
Pause
и сразу поймёте (в первом случае - полный путь до батника, во втором - раздел, на котором лежит батник).
|
Avatar-Lion |
04-09-2018 23:11 2829958 |
Фу, чёрт, оказывается надо было %~dp0 без \ указывать... Всё, теперь все копирует. Спасибо.
|
Цитата:
Цитата Avatar-Lion
Я планировал запускать ВАТ-файл по правой кнопке (от имени администратора). Или это не будет работать? »
|
С относительными путями — навряд ли, поскольку при этом текущий каталог сменится на путь к исполняемому файлу %comspec% — обычно c:\Windows\System32. Но Вы ведь не используете относительные пути, Вы используете абсолютные.
|
Время: 23:18.
© OSzone.net 2001-