O que estou perdendo
Você não está usando o comando set
corretamente.
set target = \Server-!ctr! password /user:domain\username
Isso cria uma variável chamada "target" (observe o espaço extra após o nome).
Além disso, o lado direito da expressão contém espaços, então você também precisa de algumas citações.
Any extra spaces around either the variable name or the string, will not be ignored, SET is not forgiving of extra spaces like many other scripting languages.
Fonte conjunto
Tente a seguinte substituição:
set target="\Server-!ctr! password /user:domain\username"
Você também não está usando (compreendendo) a expansão atrasada corretamente.
echo %target%
echo net use z: %target%
Delayed Expansion will cause variables to be expanded at execution time rather than at parse time.
Fonte expansão ativadaelayed
Isso deve ser:
echo !target!
echo net use z: !target!
Leitura Adicional
- Um índice A-Z da linha de comando do Windows CMD
- Uma lista categorizada de comandos do Windows CMD
- enabledelayedexpansion - Expansão com atraso fará com que as variáveis sejam expandidas em tempo de execução e não no tempo de análise.
- definir - Exibir, definir ou remover variáveis de ambiente do CMD. As alterações feitas com o SET permanecerão apenas pela duração da sessão atual do CMD.