2009-09-24 20 views
49

YUI sıkıştırıcısıyla JavaScript dosyalarını sıkıştırmak için sağ tıklatma bağlam menüsü komutu oluşturmaya çalışıyorum.Dosya uzantısını bir uzantı olmadan bir Windows Toplu Komut Dosyası'nda edinme

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

ben dosya adı açılmasını başvurmak için değişken %1 kullanabilirsiniz biliyorum: Hayalim bir bağlam menüsünü çalıştırmak için bu almak için çalışmaktır. Bu komutu bir toplu iş dosyası sözdizimine nasıl alacağımı anlayamıyorum ve çevrimiçi yanıtları bulamadım.

Güncelleme:
Jeremy'nin cevabı (+ yorum) çalıştı. stumbles herkes için buraya yapmam gereken şudur:

JavaScript dosyası için oluşturulan eylem, ben komutu olarak bu kullandı:

minify.bat "%1" 

benim toplu komut dosyası, çağıran şuna benzer:

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

toplu komut, kod yukarıdaki hem PATH değişkenler eklenir java.exe & yuicompressor için dizinleri varsayar unutmayın. Bunları yolunuza eklemezseniz, dosyaların tam yolunu kullanmanız gerekir.

dizisi %~dpn almak için kullanılır:

  1. %~d - sürücü
  2. %~p - yolu
  3. %~n - Dosya adı
+6

Bkz 'ÇAĞRI /?' '% Dahil windows toplu parametrelerine geliştirmeleri tam listesi için ~ uzatılması için x1'. –

cevap

43

Değişim toplu çağırmak için eylem dosya:

RunCompressor.bat "%1" 

Kullanım %~n1 RunCompressor.bat içinde uzantısı olmadan dosya adını almak için: Toplu iş dosyasını çalıştırırken

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

Helpful article

başlangıç ​​javaw.exe komut pencereyi kapatır.

+0

Bunu kullanmayı denedim ve dosyanın adını değerlendirmek yerine, "'% ~ n1.min.js' "adında bir dosyayla sonuçlandım. –

+0

Windows'un hangi sürümü kullanıyorsunuz? –

+0

Windows XP Pro –

0

YUI kompresörüne göndermek için çıktı dosya adını belirleyen kendi sınıfınızı yazın.

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 
İlgili konular