2012-03-05 22 views
6

Little Willis tại đây. Tôi đang cố gắng sử dụng tập lệnh batch để chỉnh sửa khóa đăng ký hiện có được sử dụng khi nhấp đúp vào tệp .jar. Vấn đề là các dữ liệu mà tôi đang cố gắng để nhập có chứa dấu ngoặc kép nhưng tôi cũng cần báo giá cho nó được coi là một chuỗi.Thêm khóa đăng ký trong cửa sổ có dấu ngoặc kép cần thiết trong dữ liệu bằng cách sử dụng tập lệnh theo lô

Ví dụ:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* /f 

Khi tôi chạy trong một kịch bản hàng loạt cửa sổ in cmd ra "Lỗi: Quá nhiều tham số dòng lệnh"

Vì vậy, để làm điều này đơn giản. Tôi muốn thêm khóa đăng ký với "C: \ Program Files \ Java \ jre7 \ bin \ javaw.exe" -jar "% 1"% * làm dữ liệu bao gồm các trích dẫn và% 1 và% * chính xác như chúng không được chuyển đổi sang bất kỳ câu lệnh hoặc chuỗi thực tế nào.

EDIT:

Việc đăng ký thường được thêm vào bằng cách sử dụng này chuỗi dòng lệnh:

ftype jarfile="C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %* 

nó hoạt động tốt trong dòng lệnh, nhưng cũng giống như mã đưa ra dưới đây khi tôi đã sử dụng điều này trong một tập lệnh batch "% 1" và% * không xuất hiện.

Trả lời

13

Sử dụng dấu xồ nguợc để thoát khỏi dấu ngoặc kép bên trong, ví dụ:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%1\" %*" /f 
+0

bạn trả lời về giảm một nửa câu hỏi của tôi. Đầu ra của những gì bạn đã cho tôi là "C: \ Program Files \ Java \ jre7 \ bin \ javaw.exe" -jar "" "/ f thay vì" C: \ Program Files \ Java \ jre7 \ bin \ javaw.exe "-jar"% 1 "% * – Trey

+0

Tôi chỉ cần chỉnh sửa để thêm dấu ngoặc kép cuối cùng – Marc

+0

OK. Tôi đặt báo giá trước/f vì vậy bây giờ nó không hỏi tôi nếu tôi muốn ghi đè khóa đăng ký hiện tại nhưng đầu ra vẫn tương đối giống nhau. "C: \ Program Files \ Java \ jre7 \ bin \ javaw.exe" -jar "" "% 1" đang chuyển thành "" và% * không xuất hiện. – Trey

7

literals Percent phải được tăng gấp đôi trong một tập tin batch: \"%%1\" %%*"

+0

CẢM ƠN BẠN SO MUCH! Hoạt động 100% ngay bây giờ – Trey

+0

Cuộc gọi tốt, dbenha m. Chạy từ dòng lệnh so với tập tin batch giải thích các vấn đề tỷ lệ phần trăm. – Marc

1

như một sự bổ sung để câu trả lời dbenham 's, bạn nên sử dụng backslaches và báo giá cho đường dẫn vị trí !!
(i có nghĩa là, bạn nên sử dụng "\"C:\Program Files..... thay vì "C:\Program Files.....)

vì vậy đây là câu trả lời cuối cùng cho ký hiệu phần trăm điển hình & thêm vấn đề:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "\"C:\Program Files\Java\jre7\bin\javaw.exe\" -jar \"%%1\"" /f 

nhờ dbenham!

1

Một lựa chọn khác là sử dụng dấu nháy đơn, một số ứng dụng có thể đọc nó đúng cách, ví dụ:

reg add "HKEY_LOCAL_MACHINE\Software\Classes\jarfile\shell\open\command" /v "" /t REG_EXPAND_SZ /d "'C:\Program Files\Java\jre7\bin\javaw.exe\' -jar '%1' %*" /f 
Các vấn đề liên quan