Команда Net Use с относительным целевым путем
У меня есть пакетный файл, расположенный в нескольких папках, и в этом файле мне нужно заменить старый subst T: .
команда для net use
потому что блоки (диски) имеют разные свойства в Windows 7.
Тем не менее, я обнаружил, что net use
допускает только абсолютные пути, такие как:
net use T: \\path\to\folder
Я не могу работать с абсолютными путями, но net use T: .
не допускается (выдает ошибку).
Есть ли способ выполнить net use
команда из папки, чтобы он использовал текущий каталог.bat?
Я думаю, что лучшим решением для меня было бы иметь возможность получить полный путь (\path\to\folder) с помощью пакетной команды. (переменные%cd% и chdir в этом случае не работают). Вопросы о получении текущего каталога или имени папки бесполезны, так как net use
команда не позволяет пути, такие как x:\path\to\folder
1 ответ
%~dp0
даст именно то, что вы просите (т.е. \\server\share\to\folder
) Но вы не можете использовать его для своего net use
команда. net use
Команда принимает только \\server\share
часть для создания буквы диска.
Вы можете сделать некоторую работу, чтобы снять \to\folder
-part и добавьте его позже в ваши пакетные файлы, но может быть лучше использовать pushd \\server\share\to\folder
команда. С помощью этой команды создается временная буква драйвера, и текущий каталог автоматически изменяется на правильную папку. С popd
-командовать вы вернулись туда, где вы начали, и временный диск освобожден.
Так:
C:\>
C:\>pushd \\wdmycloud\public\new folder
Z:\New folder>::do your thing
Z:\New folder>
Z:\New folder>popd
C:\>
Кстати, если вам нужно узнать, какой временный диск создан, вы можете использовать %~d0
в ваших пакетных файлах. А также %~dp0
для полного пути и т. д. (или %cd%
конечно:)).