2009-09-24 86 views
49

我正在嘗試使用YUI壓縮器來創建一個右鍵單擊上下文菜單命令來壓縮JavaScript文件。我的最終目標是儘量得到這個上下文菜單上運行:在Windows批處理腳本中獲取沒有擴展名的文件名

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

我知道我可以使用變量%1引用被打開的文件名。我無法弄清楚如何將此命令轉換爲批處理文件語法,並且無法在線查找任何答案。

更新:
傑里米的回答(+評論)工作。對於任何人誰在此跌倒,這裏是我必須做的:

在我的JavaScript文件中創建的動作,我用這個作爲命令:

minify.bat "%1" 

其中要求我的批處理腳本,該腳本看起來是這樣的:

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

對於批處理腳本,記住上面的代碼中承擔的java.exe &的YUICompressor目錄都添加到您的PATH變量。如果您不將這些添加到路徑中,則必須使用文件的完整路徑。

序列%~dpn用來獲取:

  1. %~d - 驅動
  2. %~p - 路徑
  3. %~n - 文件名
+6

見'CALL /?'爲增強對Windows批處理參數的完整列表,包括'%〜x1'爲擴展名。 – 2012-08-29 08:03:19

回答

43

變化的行動,調用批處理文件:

RunCompressor.bat "%1" 

使用%~n1得到的文件名沒有RunCompressor.bat擴展:運行批處理文件時

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

Helpful article

開始javaw.exe的關閉命令窗口。

+0

我嘗試過使用它,而不是它評估文件的名稱,我結束了一個名爲「'〜%n1.min.js'」的文件。 – 2009-09-24 15:00:40

+0

您使用的是哪個版本的Windows? – 2009-09-24 15:19:38

+0

我正在使用Windows XP Pro – 2009-09-24 15:20:11

0

編寫自己的類,確定要發送到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 
相關問題