2009-09-24 17 views
49

Próbuję utworzyć polecenie menu kontekstowego prawym przyciskiem myszy do kompresowania plików JavaScript za pomocą kompresora YUI. Moim ostatecznym celem jest, aby postarać się o to, aby uruchomić w menu kontekstowym:Uzyskiwanie nazwy pliku bez rozszerzenia w skrypcie wsadowym Windows

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

wiem, że mogę użyć zmiennej %1 odwołać nazwa pliku jest otwarty. Nie mogę wymyślić, jak uzyskać to polecenie w składni pliku wsadowego i nie udało się znaleźć żadnych odpowiedzi w trybie online.

Aktualizacja:
Odpowiedź Jeremy'ego (+ komentarze) zadziałała. Dla każdego, kto natyka się na to, o to co miałem zrobić:

W akcji utworzonego dla pliku JavaScript, użyłem to jako polecenie:

minify.bat "%1" 

który wzywa mój skrypt wsadowy, który wygląda następująco:

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

skryptu wsadowego, należy pamiętać, że powyższy kod zakłada katalogi dla java.exe & yuicompressor są zarówno dodany do PATH zmiennych. Jeśli nie dodasz ich do swojej ścieżki, będziesz musiał użyć pełnej ścieżki do plików.

Sekwencja %~dpn jest używana do pobierania:

  1. %~d - Napęd
  2. %~p - Ścieżka
  3. %~n - Nazwa pliku
+6

Zobacz 'CALL /?' Pełną listę ulepszeń parametrów okien wsadowych, w tym '% ~ x1' dla rozszerzenia. –

Odpowiedz

43

zmienić działanie nazwać partię file:

RunCompressor.bat "%1" 

Zastosowanie %~n1 aby uzyskać nazwę pliku bez rozszerzenia w RunCompressor.bat:

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

Helpful article

początek javaw.exe zamyka okno poleceń podczas uruchamiania pliku wsadowego.

+0

Próbowałem użyć tego, a zamiast tego, oceniając nazwę pliku, otrzymałem plik o nazwie "'% ~ n1.min.js ". –

+0

Jakiej wersji systemu Windows używasz? –

+0

Używam Windows XP Pro –

0

Napisz własną klasę, która określa nazwę pliku wyjściowego do wysłania do kompresora YUI.

java.exe -cp yuicompressor-2.4.2.jar MyClass "%1" 
3
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 
Powiązane problemy