Estou definindo minha própria variável com base em uma extensão de arquivo, o nome do arquivo é desconhecido em tempo de execução:
for %%a in (*.drf) do (set "InFile=%%a")
quero reutilizar essa variável mais tarde para uma ação diferente. Quero poder usá-la como posso com %~n1
o que usa apenas o nome do arquivo do argumento 1. por exemplo: MyFile.drf
== MyFile
. Além disso, %~nx1
imprimirá o (n)ame e a e(x)tensão do argumento (1) (nx1) . Conforme minha última nota, há uma maneira semelhante de construir uma variável personalizada que eu defina assim? Tentei %~nInFile
e %%~nInFile
sem sorte.
relate perguntas
-
Como desativar a aceleração do mouse em um touchpad de precisão do Windows?
-
renomear em massa conjuntos de arquivos de imagem
-
Qual seria o equivalente em lote do argumento "pass" do Python?
-
Comunique-se com o daemon do Docker no Windows
-
atalho do shell da área de trabalho no painel lateral do explorer
Não, não há. O posicional
%1
e o loop%a
/%%a
são os únicos lugares onde o cmd suporta esse tipo de expansão.Você pode fazer essas expansões como parte do seu
for
comando, por exemploset "InFileName=%%~na"
, ou pode criar uma sub-rotina que faça issoset "InFileName=%~1"
e chamá-la comcall :thing "%InFile%"
, como possíveis soluções alternativas.