web-dev-qa-db-fra.com

Obtention du nom de fichier sans extension dans un script batch Windows

J'essaie de créer une commande de menu contextuel avec clic droit pour compresser les fichiers JavaScript avec le compresseur YUI. Mon but ultime est d'essayer de faire fonctionner ceci 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érencer le nom du fichier en cours d'ouverture. Je ne peux pas comprendre comment obtenir cette commande dans une syntaxe de fichier batch et je n'ai pas pu trouver de réponses en ligne.

Mise à jour:
La réponse de Jeremy (+ commentaires) a fonctionné. Pour tous ceux qui trébuchent là-dessus, voici ce que je devais faire:

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

minify.bat "%1"

Qui appelle mon script batch, qui ressemble à ceci:

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

Pour le script batch, gardez à l'esprit que le code ci-dessus suppose que les répertoires pour Java.exe et yuicompressor sont tous deux ajoutés à vos variables PATH. Si vous ne les ajoutez pas à votre chemin, vous devrez utiliser le chemin complet des fichiers.

La séquence %~dpn est utilisé pour obtenir:

  1. %~d - Le lecteur
  2. %~p - Le chemin
  3. %~n - Le nom du fichier
53
Dan Herbert

Modifiez l'action pour appeler un fichier de commandes:

RunCompressor.bat "%1"

Utilisation %~n1 pour obtenir le nom de 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.

46
Jeremy Stein
echo path of this file name is: %~dp0
echo file name of this file without extension is:%~n0
echo file extention of this file is:%~x0
echo The file name of this file is: %~nx0
7
lygstate

Écrivez 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"
0
Jeremy Stein