2009-09-24 44 views
49

Tôi đang cố tạo lệnh menu ngữ cảnh nhấp chuột phải để nén tệp JavaScript bằng máy nén YUI. Mục tiêu cuối cùng của tôi là cố gắng thực hiện điều này để chạy trên menu ngữ cảnh:Lấy tên tệp mà không có phần mở rộng trong Tập lệnh Batch của Windows

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

Tôi biết tôi có thể sử dụng biến số %1 để tham chiếu tên tệp đang được mở. Tôi không thể tìm ra cách để có được lệnh này vào một cú pháp tập tin batch và đã không thể tìm thấy bất kỳ câu trả lời trực tuyến.

Cập nhật:
Câu trả lời của Jeremy (+ comments) đã hoạt động. Đối với bất cứ ai tình cờ gặp này, đây là những gì tôi phải làm:

Trong hành động tôi đã tạo cho các tập tin JavaScript, tôi đã sử dụng điều này như lệnh:

minify.bat "%1" 

nào gọi script lô của tôi, mà trông như thế này:

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

đối với kịch bản hàng loạt, hãy ghi nhớ rằng mã trên giả định các thư mục cho java.exe & yuicompressor đều thêm vào PATH biến của bạn. Nếu bạn không thêm chúng vào đường dẫn của mình, bạn sẽ phải sử dụng đường dẫn đầy đủ cho các tệp.

Chuỗi %~dpn được sử dụng để nhận được:

  1. %~d - Các ổ
  2. %~p - Con đường
  3. %~n - Tên tập tin
+6

Xem 'CALL /?' Cho toàn bộ danh sách các cải tiến đối với các thông số cửa sổ hàng loạt, bao gồm '% ~ x1' gia hạn. –

Trả lời

43

Thay đổi hành động để gọi một lô file:

RunCompressor.bat "%1" 

Sử dụng %~n1 để có được tên tập tin mà không có sự mở rộng trong RunCompressor.bat:

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

Helpful article

bắt đầu javaw.exe đóng cửa sổ lệnh khi chạy tập tin thực thi.

+0

Tôi đã thử sử dụng nó và thay vì đánh giá tên tệp, tôi đã kết thúc bằng một tệp có tên "'% ~ n1.min.js' ". –

+0

Bạn đang sử dụng phiên bản Windows nào? –

+0

Tôi đang sử dụng Windows XP Pro –

0

Viết lớp của riêng bạn xác định tên tệp đầu ra để gửi tới máy nén 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 
Các vấn đề liên quan