Чего мне не хватает
Вы не используете set
команду правильно.
set target = \\Server-!ctr! password /user:domain\username
Это создает переменную с именем «target» (обратите внимание на дополнительный пробел после имени).
Кроме того, правая часть выражения содержит пробелы, поэтому вам также понадобятся некоторые кавычки.
Любые лишние пробелы вокруг имени переменной или строки не будут проигнорированы, SET не прощает лишних пробелов, как многие другие языки сценариев.
Исходный набор
Попробуйте следующую замену:
set target="\\Server-!ctr! password /user:domain\username"
Вы также не правильно используете (понимаете) отложенное расширение.
echo %target% echo net use z: %target%
Отложенное расширение приведет к тому, что переменные будут расширены во время выполнения, а не во время разбора.
Источник enabledelayedexpansion
Это должно быть:
echo !target! echo net use z: !target!
Дальнейшее чтение
- Индекс AZ командной строки Windows CMD
- Категоризованный список команд Windows CMD
- enabledelayedexpansion - отложенное расширение приведет к тому, что переменные будут расширяться во время выполнения, а не во время анализа.
- set - отображать, устанавливать или удалять переменные окружения CMD. Изменения, сделанные с помощью SET, будут сохраняться только в течение текущего сеанса CMD.