Làm cách nào để thoát ký hiệu trong một tệp bó (hoặc từ dòng lệnh Windows) để sử dụng start
lệnh để mở các trang web có ký hiệu trong URL?
Báo giá kép sẽ không hoạt động với start
; điều này bắt đầu một cửa sổ dòng lệnh mới thay thế.
Cập nhật 1 : Giải pháp của Wael Dalloul hoạt động. Ngoài ra, nếu có các ký tự được mã hóa URL (ví dụ: không gian được mã hóa dưới dạng% 20) trong URL và nó nằm trong một tệp bó thì '%' phải được mã hóa thành '%%'. Đây không phải là trường hợp trong ví dụ.
Ví dụ, từ dòng lệnh ( CMD.EXE
):
start http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8
sẽ cho kết quả
http://www.google.com/search?client=opera
đang được mở trong trình duyệt mặc định và những lỗi này trong cửa sổ dòng lệnh:
'rls' is not recognized as an internal or external command,
operable program or batch file.
'q' is not recognized as an internal or external command,
operable program or batch file.
'sourceid' is not recognized as an internal or external command,
operable program or batch file.
'ie' is not recognized as an internal or external command,
operable program or batch file.
'oe' is not recognized as an internal or external command,
operable program or batch file.
Nền tảng: Windows XP 64 bit SP2.
+
tôi nên đặt ở phía trước để thoát khỏi nó?
start "http://www.google.com/search?client=opera&rls=en&q=escape+ampersand&sourceid=opera&ie=utf-8&oe=utf-8"
hoạt động vì PowerShell sẽ loại bỏ trích dẫn
start
đó khiến cho việc trích dẫn đối số thất bại nếu được áp dụng mà không cần suy nghĩ. Và nói chung, tôi nghĩ rằng việc bao gồm các đối số trong dấu ngoặc kép là dễ dàng hơn và ít xảy ra lỗi hơn là thoát khỏi mọi ký tự cần thoát trong đó.