Arquivo em lote da janela - o nome da pasta atual fica truncado

1

Na minha caixa Win7 x64, quando eu executo este comando para encontrar o nome da pasta atual

for %* in (.) do echo %~n*

funciona para pastas com caracteres alfabéticos. No entanto, para nomes de pastas que contêm apenas valores numéricos, a última parte fica truncada.

Por exemplo,

C:\temp.4.0> for %* in (.) do echo %~n* # outputs 2.4
C:\temp> for %* in (.) do echo %~n*       # outputs temp

Não sei por que esse comportamento peculiar está acontecendo. Existe outra maneira de descobrir apenas o nome da pasta atual? Por "atual" quero dizer a pasta da qual o arquivo bat foi executado.

    
por Mrchief 20.05.2014 / 22:02

1 resposta

4

Com um nome de pasta como "2.4.0", o Windows tratará "2.4" como o nome e ".0" como a extensão.

Então, se você quer o nome completo, incluindo a extensão, então você precisa usar %~nx* .

Esse é um código aparentemente estranho. Usar * como uma variável FOR provavelmente irá jogar a pessoa comum para fora.

    
por 20.05.2014 / 22:29