Я создаю простой скрипт резервного копирования из командной строки, чтобы использовать robocopy для зеркального отображения "важных" вещей на моем NAS-устройстве. Я бы предпочел не полагаться на жестко запрограммированную букву диска для этого блока NAS. В сценарии я хотел бы отобразить временную букву диска, скопировать соответствующие файлы и утилизировать подключенный диск. Я не хочу предполагать, что, если эта буква диска уже сопоставлена, она указывает на то место, которое я ожидаю. Я также не хочу "предполагать", что какая-то буква диска доступна, когда я сопоставляю диск, таким образом, ведущий '*'.
net use * \\nasbox\sharename password /user:username /persistent:no
Как правильно в моем скрипте .bat извлечь эту букву диска для использования в последующих командах? Я думал, что смогу собрать воедино какой-то вариант синтаксического анализа "for", но я также подозреваю, что должен быть более простой способ, чем эзотерический синтаксис for.
C:\>net use * \\nasbox\sharename password /user:username /persistent:no Drive Z: is now connected to \\nasbox\sharename. The command completed successfully. C:\>
После того, как у меня есть обозначенная буква диска, я хотел бы выполнить следующие команды:
robocopy C:\path\to\important\stuff %NewDrive%\path\to\backup /MIR /Z