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

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

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%, но они также не дают эффекта. Вроде абсолютно примитивное действие, но ничего не получается...

Iska 04-09-2018 22:16 2829949

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 без \ указывать... Всё, теперь все копирует. Спасибо.

Iska 04-09-2018 23:29 2829962

Цитата:

Цитата Avatar-Lion
Я планировал запускать ВАТ-файл по правой кнопке (от имени администратора). Или это не будет работать? »

С относительными путями — навряд ли, поскольку при этом текущий каталог сменится на путь к исполняемому файлу %comspec% — обычно c:\Windows\System32. Но Вы ведь не используете относительные пути, Вы используете абсолютные.


Время: 23:18.

Время: 23:18.
© OSzone.net 2001-