Chamando uma variável após sublinhado no prompt de comando do Windows

Chamando uma variável após sublinhado no prompt de comando do Windows

No meu arquivo em lote, estou tentando chamar uma variável após o sublinhado. Mas a variável não será reconhecida se for adicionada após um sublinhado.

set /p X=Folder name:%=%
mkdir Delta_%X%

Portanto, o Windows estava criando um diretório com o nome Delta_ em vez de Delta_{Nome da pasta fornecido pelo usuário para X} para o código acima.

Para contornar esta situação atribuí sublinhado a outra variável e chamei ambas as variáveis ​​e funcionou bem. Queria verificar se existe outra maneira (correta) de lidar com esse problema.

Gambiarra:

set /p X=Folder name:%=%
set Z=_
mkdir Delta%Z%%X%

Responder1

Não há problema em adicionar um sublinhado usando qualquer um dos métodos descritos. No entanto, você também pode adicionar um sublinhado à sua %X%variável assim:

set /p X=Folder name: 
set X=_%X%

ou você pode adicionar Delta_ assim:

set X=Delta_%X%

Claro, você pode não querer fazer isso se precisar preservar a entrada real do usuário para mais tarde. Se for esse o caso, você pode fazer isso:

set /p X=Folder name: 
set Y=Delta_%X%
echo user entered: %X%
mkdir %Y%

informação relacionada