Это довольно старый вопрос, но.. Я искал точно такой же ответ, как я пытался создать пакет, который будет использовать UNC-путь к фактическому местоположению патча и делать некоторые вещи там (поэтому копируйте и вставляйте в другое место/папку и начинайте снова).
поскольку я не мог найти ответ, я сам нашел решение, но это не очень красиво и, конечно, не простая команда. Но это можно реализовать в пакетном режиме. На CMD это было бы:
FOR /F "tokens=2" %i IN ('NET USE ^| FIND "%CD:~0,2%"') DO (
SET cNetworkPath=%i)
SET cNetworkPath=%cNetworkPath%%CD:~2%
ECHO %cNetworkPath%
вы можно скопировать четыре строки (лучше 4+пустая строка) и вставить их в CMD, чтобы получить имитационное Эхо пути, чтобы скопировать его.
в партии вы использовали бы его немного по-другому:
FOR /F "tokens=2" %%i IN ('NET USE ^| FIND "%~d0"') DO (
bNetworkPath=%%i)
SET bCheckPath=!bOriginalPath!%~p0
переменная %CD% сохраняет текущий путь, и вам нужна только буква диска, поэтому вы ищете ее только с помощью команды FIND в NET USE. С помощью" tokens=2 " (или 3, в зависимости от выходных данных NET USE) переменная %i сохраняет путь к искомой букве диска. После этого второй сет команда добавляет папки, которые вы просматривали на сетевом диске с %CD:~2% (смещение 2, чтобы отрезать букву диска).
для пакета используются переменные %~d0 или %~p0. %0 хранит полный путь сам пакет (Эл. г. Z:\temp\test.bat; %~d0 = Z:; %~p0 = \temp\; d = диск, P = Путь, f = полный путь, n = имя) в противном случае это похоже на команду CMD.