พารามิเตอร์เป้าหมายทางลัดของ Windows เริ่มต้นด้วย @


12

ฉันมีแอพพลิเคชั่น Windows ที่ฉันต้องเรียกใช้ด้วยทางลัดบนเดสก์ท็อปและพารามิเตอร์บรรทัดคำสั่งบางตัว

ฉันทำมาหลายพันครั้งแล้ว แต่อันนี้ต่างออกไปเล็กน้อย แทนที่จะใช้พารามิเตอร์บรรทัดคำสั่งปกติเช่น-e 12345หรือพารามิเตอร์-example 12345นี้ใช้@12345(เริ่มต้นด้วย@สัญลักษณ์)

ทางลัดของ Windows ไม่เหมือนกับพารามิเตอร์นี้ที่มาในทันทีหลังจากชื่อที่ปฏิบัติการได้ ฉันไม่รู้ว่าทำไม

ตัวอย่างเช่น:

c:\example\example.exe @12345 -e9876ในฐานะ "เป้าหมาย" เมื่อบันทึกจะตัดพารามิเตอร์ทั้งหมดออกและปล่อยc:\example\example.exeให้เป็นเป้าหมาย

แต่ใช้ c:\example\example.exe -e9876 @12345งานได้ดี มันบันทึกและตรวจสอบและทุกอย่างดี

อย่างไรก็ตามฉันต้องการ@พารามิเตอร์ที่จะเป็นคนแรกในคำสั่ง นอกเหนือจากการทำสิ่งที่ต้องการห่อคำสั่งในไฟล์แบตช์และเรียกแบทช์ฉันจะมี@สัญลักษณ์เป็นพารามิเตอร์บรรทัดคำสั่งแรกบนทางลัดของ Windows ได้อย่างไร


1
อีกทางเลือกหนึ่งคือการอ้างถึง params (รายบุคคล) สมมติว่าโปรแกรมดังกล่าวสนับสนุน พฤติกรรมที่น่าสนใจที่ฉันเพิ่งพบในการทดสอบแม้ว่า: params หายไปจากฟิลด์เป้าหมายแต่พวกเขายังคงผ่านไปยังโปรแกรมเป้าหมาย! ในความเป็นจริง params ที่มองไม่เห็นในตอนนี้จะถูกเก็บไว้จนกว่าคุณจะแก้ไขฟิลด์อีกครั้งและ.lnkไฟล์ต่างกันจริง (ทดสอบโดยมีเป้าหมายเป็นไฟล์แบตช์ที่เพียงแค่กลอก Params ที่ส่งเข้ามา)
Bob

คำตอบ:


13

ใครจะรู้ ... Windows ถือว่า@ตัวละครเป็นตัวคั่น คำสั่งของ Windows จะแปลความหมายองค์ประกอบแรกในคำสั่ง ... ดังนั้นจึงตัดส่วนที่เหลืออย่างมีประสิทธิภาพ เห็นได้ชัดว่าคุณสามารถลบล้างพฤติกรรมได้โดยการใส่เครื่องหมาย^ก่อนหน้าเพื่อหลีกเลี่ยงสัญลักษณ์

กล่าวคือ

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


3
เฮ้! มันได้ผล! ด้วยความอยากรู้คุณพบคำตอบของสิ่งนั้นบนโลกได้อย่างไร
Mark Henderson

3
Deeeep การโพสต์มืดของปีก่อน บางคนอ้างอิงถึงเอกสารที่ไม่มีอยู่อีกต่อไป (หรืออย่างน้อยก็หาไม่ได้ง่าย) และพูดถึงเกร็ดความรู้เหล่านั้น เขายังพูดถึงสิ่งต่าง ๆ เช่น$และ%ตัวละครที่อาจทำให้เกิดปัญหาอื่น ๆ คุณสามารถหลบหนีผู้ที่ใช้^ตัวละครเดียวกัน นอกจากนี้คุณยังสามารถหลบหนีโดยการทำ^^ตามที่คุณคาดหวัง
TheCompWiz

4
@ MarkHenderson สัญลักษณ์ Caret "^" เป็นสัญลักษณ์ "หนีอักขระต่อไป" มาตรฐานที่ใช้โดย API WIN32 (และ 64 บิต) หลังจากนั้นทั้งหมดตั้งแต่ API (ถ้าฉันจำได้ถูกต้อง) อย่างน้อย NT 3.5 (ใช่: ฉันอายุมากขึ้น ) มันทำงานได้ทุกที่ใน Windows ที่คุณสามารถจัดหา command-line: CMD-สคริปต์ / พรอมต์, กล่อง Run WIndows + R, ทางลัดในบรรทัดคำสั่งที่เกี่ยวข้องกับบริการและงานที่กำหนดเวลาเพียงเพื่อตั้งชื่อ น้อย
Tonny
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.