54 votes

Obtenir le nom du fichier sans extension dans un script batch Windows

Je suis en train de créer un menu contextuel de commande pour la compression des fichiers JavaScript avec YUI compressor. Mon but ultime est de tenter de l'obtenir pour fonctionner sur un menu contextuel:

java.exe -jar yuicompressor-2.4.2.jar -o <filename>.min.js <filename>.js

Je sais que je peux utiliser la variable %1 pour référence le nom du fichier en cours d'ouverture. Je ne peux pas comprendre comment obtenir cette commande dans un fichier de commandes syntaxe et n'ont pas été en mesure de trouver des réponses en ligne.

Mise à jour:
Jeremy réponse (+commentaires) travaillé. Pour quelqu'un qui tombe sur ce, voici ce que j'avais à faire:

Dans l'action que j'ai créé pour le fichier JavaScript, j'ai utilisé cette commande:

minify.bat "%1"

Qui appelle mon script de commandes, qui ressemble à ceci:

java.exe -jar yuicompressor-2.4.2.jar -o "%~dpn1.min.js" %1

Pour le script de commandes, gardez à l'esprit que le code ci-dessus suppose que les répertoires pour java.exe & yuicompressor sont à la fois ajouté à votre PATH variables. Si vous n'avez pas les ajouter sur votre chemin, vous devrez utiliser le chemin d'accès complet pour les fichiers.

La séquence de %~dpn permet d'obtenir:

  1. %~d - Le lecteur
  2. %~p - Le chemin
  3. %~n - Le nom de fichier

47voto

Jeremy Stein Points 8343

Modifiez l'action pour appeler un fichier de commandes:

 RunCompressor.bat "%1"
 

Utilisez %~n1 pour obtenir le nom du fichier sans l'extension dans RunCompressor.bat:

 start javaw.exe -jar yuicompressor-2.4.2.jar -o "%~n1.min.js" "%1"
 

Article utile

start javaw.exe ferme la fenêtre de commande lors de l'exécution du fichier de commandes.

8voto

lygstate Points 56

Le chemin echo de ce nom de fichier est:% ~ dp0 Le nom du fichier echo de ce fichier sans extension est:% ~ n0 l'extension du fichier echo est le suivant:% ~ x0 echo Le nom de fichier de ce fichier est:% ~ nx0

0voto

Jeremy Stein Points 8343

Ecrivez votre propre classe qui détermine le nom du fichier de sortie à envoyer au compresseur YUI.

 java.exe -cp yuicompressor-2.4.2.jar MyClass "%1"
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X