Tôi đã viết một tập tin batch để khởi chạy một ứng dụng (ứng dụng không phải của tôi, tôi không thể sửa đổi nó). Bản thân tập tin batch chấp nhận một số tham số. Ứng dụng chấp nhận các tham số khác. Tập tin batch sử dụng tất cả các tùy chọn của nó, sử dụng SHIFT, sau đó khởi chạy ứng dụng với môi trường chính xác và chuyển các tham số còn lại cho ứng dụng. Ví dụ về việc gọi tệp lô:Bảo quản ký tự "=" (bằng) trong tham số tập tin batch
script.bat -opt-1 -opt-2 /opt-a /opt-b=value
Trong ví dụ "-opt-1" và "-opt-2" được tiêu thụ bởi script.bat. Cuối cùng, nó phải gọi ứng dụng gốc với các tham số "/ opt-a" và "/ opt-b = value". Dấu "=" trong tham số cuối cùng được mong đợi bởi ứng dụng, tôi không thể thay đổi nó. Nó hoạt động tốt khi tôi gọi ứng dụng trực tiếp từ dòng lệnh.
Nhưng khi tôi gọi nó từ tập lệnh, ứng dụng nhận được 2 tham số cho "/ opt-b = value": cả "/ opt-b" và "value". Nếu tôi sử dụng "% *" khi tôi gọi ứng dụng, dấu "=" được giữ nguyên, nhưng tất cả các thông số đều được chuyển (bao gồm các tham số bị bỏ qua bằng SHIFT).
Có cách nào để chỉ chuyển các thông số cuối cùng và giữ lại dấu "=" không?
Có lẽ bạn có thể sử dụng ký tự thoát ra DOS của: '^' –
Tôi đã thử nó, nó không hoạt động. Không có dấu ngoặc kép '' 'hoặc' '' –
Có lẽ bạn có thể đăng tập lệnh của mình để mọi người có thể sao chép và dán nó, xem có gì sai và đề xuất sửa lỗi. – indiv