2009-09-16 8 views

Répondre

4

Cela devrait fonctionner

echo% ~ n1

3

Si %1 contiendra juste un nom de fichier (pas de chemin):

echo %~n1 

Si elle pouvait contenir un chemin:

echo %~dpn1 

vous donnera le chemin absolu.

Magnifique n'est-ce pas! :-P [EDIT:. Ces formulaires traitent joyeusement avec des arguments cités, les dequoting dans le processus, comme Johannes souligne dans un commentaire]

Pour plus d'informations: help for. C'est vrai, l'aide pertinente est sous la commande FOR. Ce qui indique que cette syntaxe ne fonctionne qu'avec les variables de boucle FOR. Mais en réalité, il semble fonctionner correctement avec %1, %2, etc. Ce qui pourrait vous faire penser que cela fonctionnerait avec n'importe quelle variable d'environnement - mais ce n'est pas le cas. J'adore CMD.EXE.

+1

Pourquoi pensez-vous que cela casse un argument entre guillemets? L'aide indique explicitement que toutes les citations environnantes seront supprimées. – Joey

+0

Vous avez raison Johannes. L'aide dit que '% ~ I' va" étendre% I en supprimant toutes les citations environnantes ", me menant à la conclusion (incorrecte) que l'utilisation des autres formes impliquant' ~ 'ne * supprimerait * pas les citations environnantes. –

+0

Merci j_random. La première réponse a résolu mon problème, mais vous avez pointé quelques points utiles (aide pour?!, Par exemple :) – Rook

Questions connexes