Это довольно старый вопрос, но ... я искал тот же самый ответ, когда пытался создать пакет, который будет использовать 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% хранит текущий путь, и вам нужна только буква диска, поэтому вы можете искать ее только с помощью команды НАЙТИ в NET USE. С "tokens = 2" (или 3, в зависимости от вывода NET USE) переменная% i сохраняет путь к искомой букве диска. После этого вторая команда SET добавляет папки, которые вы просматривали на сетевом диске, с% CD: ~ 2% (смещение 2, чтобы обрезать букву диска).
Для пакетной обработки вы используете переменные% ~ d0 или% ~ p0. % 0 хранит полный путь самого пакета (например, Z: \ temp \ test.bat;% ~ d0 = Z:;% ~ p0 = \ temp \; d = диск, p = путь, f = полный путь, n = имя) в противном случае это похоже на команду CMD.