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:
%~d
- Le lecteur%~p
- Le chemin%~n
- Le nom du fichierModifiez 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"
start javaw.exe ferme la fenêtre de commande lors de l'exécution du fichier de commandes.
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
É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"