Tham số đích của phím tắt Windows bắt đầu bằng @


12

Tôi có một ứng dụng Windows mà tôi cần phải gọi bằng phím tắt trên màn hình và một số tham số dòng lệnh.

Tôi đã làm điều này hàng ngàn lần, nhưng lần này thì hơi khác một chút. Thay vì sử dụng một tham số dòng lệnh thông thường như -e 12345hoặc -example 12345, tham số này sử dụng @12345(bắt đầu bằng @ký hiệu).

Các phím tắt Windows không thích tham số này xuất hiện ngay sau tên thực thi và nó chỉ loại bỏ mọi thứ. Tôi không biết tại sao.

Ví dụ:

c:\example\example.exe @12345 -e9876là "mục tiêu", khi lưu, loại bỏ tất cả các tham số và để lại c:\example\example.exenhư mục tiêu.

Nhưng c:\example\example.exe -e9876 @12345 hoạt động tốt. Nó tiết kiệm, và xác nhận, và mọi thứ đều tốt.

Tuy nhiên tôi cần @tham số là cái đầu tiên trong lệnh. Ngoài việc thực hiện một cái gì đó như gói lệnh trong một tệp bó và gọi lô, làm thế nào tôi có thể có một @biểu tượng là tham số dòng lệnh đầu tiên trên phím tắt Windows?


1
Tùy chọn khác là trích dẫn các thông số (riêng lẻ), giả sử chương trình cho biết hỗ trợ điều đó. Hành vi thú vị tôi vừa tìm thấy khi thử nghiệm, mặc dù: các thông số đã rời khỏi trường Target nhưng chúng vẫn được chuyển đến chương trình mục tiêu! Trong thực tế, các thông số vô hình bây giờ được giữ nguyên cho đến khi bạn chỉnh sửa lại trường và các .lnktệp thực sự khác nhau. (Đã thử nghiệm với mục tiêu là một tệp bó chỉ đơn giản lặp lại các thông số được truyền vào.)
Bob

Câu trả lời:


13

Ai biết? ... Windows rõ ràng coi @nhân vật là một dấu phân cách. Các lệnh Windows sẽ chỉ diễn giải phần tử đầu tiên trong lệnh ... vì vậy nó cắt ngắn phần còn lại một cách hiệu quả. Rõ ràng, bạn có thể ghi đè hành vi bằng cách cung cấp một ^trước khi nó thoát khỏi biểu tượng.

I E

c:\example\example.exe ^@12345 -e9876


3
Chào! Nó hoạt động! Vì tò mò, làm thế nào trên trái đất bạn đã tìm thấy câu trả lời cho điều đó?
Mark Henderson

3
Deeeep bài tối của yester-năm. Một số người đã tham chiếu đến các tài liệu không còn tồn tại nữa (hoặc ít nhất là không dễ tìm) và đã đề cập đến một số mẩu tin đó. Ông cũng đề cập đến những thứ như $và các %nhân vật có thể gây ra các vấn đề khác. Bạn có thể thoát khỏi những người sử dụng cùng một ^nhân vật. Bạn cũng có thể thoát khỏi lối thoát bằng cách làm ^^như bạn mong đợi.
TheCompWiz

4
@MarkHenderson Biểu tượng Caret "^" là biểu tượng "thoát ký tự tiếp theo" tiêu chuẩn được sử dụng bởi toàn bộ API WIN32 (và sau đó là 64 bit) kể từ (nếu tôi nhớ lại chính xác) ít nhất là NT 3.5 (vâng: Tôi đang già đi ). Nó hoạt động ở bất kỳ nơi nào trong Windows, nơi bạn có thể cung cấp một dòng lệnh: CMD-scripts / prompt, hộp chạy WIndows + R, các phím tắt, trong các dòng lệnh được liên kết với các dịch vụ và tác vụ theo lịch trình, chỉ để đặt tên cho một vài.
Tonny
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.