После поиска ответа я нашел несколько подсказок по странным переменным в https://blogs.msdn.microsoft.com/oldnewthing/20100506-00/?p=14133
используйте %=c:%)
для текущего каталога диска c или %=w:%)
для w
Или в пакетном сценарии:
cd c:\Windows
cd w:\Downloads
(echo %=c:%)
(echo %=w:%)
UPDATE
Как указал @RossRidge, это не Windows, хранящая эти странные переменные , а процессор команд DOS. Эти странные переменные известны только в текущем сеансе. То же самое относится к cd
(см. Комментарий @Stephan)
Открытие двух командных процессоров DOS:
В первом командном процессоре DOS:
cd c:\Windows
cd w:\Downloads
(echo %=c:%)
-> c:\Windows
(echo %=w:%)
-> w:\Downloads
cd w:
-> w:\Downloads
Во втором командном процессоре DOS:
(echo %=w:%)
-> %=w:% <- this variable is not set, not known
cd w:
-> w:\
Обратите внимание на несогласованный способ хранения «текущего каталога»: cd
возвращает корневой каталог после входа в процессор команд DOS. Но %=w:%
не устанавливается, пока каталог не изменится!