У меня есть этот код:
FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) do (
IF NOT EXIST %%d:\ (
echo Free drive %%d
set D=%%d:
)
)
echo d=%D%
echo Using %D% to map remote drive
subst %D% /d
subst %D% \\path_to_drive
и после этого я использую переменную D
для сопоставления свободного диска. Дело в том, что когда я впервые запускаю это и пытаюсь подключить диск, скрипт думает, что переменная D не определена или ничего не содержит. Если я печатаю это значение, когда скрипт заканчивается, с:
set D
Я вижу, что он нашел диск и получил его значение. Когда я запускаю скрипт во второй раз, он будет работать как положено. Меня сводит с ума тот факт, что пакет думает, что переменная не определена, и после того, как скрипт завершит свое выполнение, он имеет значение. Я также хотел бы добавить, что это единственная часть, где используется переменная D
, и что в ALWAYS
будет хотя бы один свободный диск, поэтому тот факт, что ни один из дисков не доступен, не соответствует действительности.
РЕДАКТИРОВАТЬ: я добавил линии, которые я использую для сопоставления диска.