@ İle başlayan Windows kısayol hedef parametresi


12

Bir masaüstü kısayolu ve bazı komut satırı parametreleri ile çağırmanız gereken bir Windows uygulaması var.

Bunu binlerce kez yaptım, ama bu biraz farklı. -e 12345Veya gibi normal bir komut satırı parametresi kullanmak yerine -example 12345bunu kullanır @12345( @sembolle başlayarak ).

Windows kısayolları, bu parametrenin yürütülebilir adın hemen ardından gelmesini sevmez ve her şeyi çıkarır. Neden bilmiyorum.

Örneğin:

c:\example\example.exe @12345 -e9876"hedef" olarak, kaydederken tüm parametreleri çıkarır c:\example\example.exeve hedef olarak bırakır .

Ama c:\example\example.exe -e9876 @12345 gayet iyi çalışıyor. Kaydetir ve doğrular ve her şey iyidir.

Ancak ihtiyacım @parametreyi komuta ilk kişi olmak. Bir toplu iş dosyasına komut kaydırma ve toplu arama gibi bir şey yapmak dışında @, bir Windows kısayolunda ilk komut satırı parametresi olmak nasıl bir sembol olabilir?


1
Diğer seçenek, söz konusu programın bunu desteklediği varsayılarak, parametreleri (bireysel olarak) alıntılamaktır. Yine de testte bulduğum ilginç davranış: parametreler Hedef alanından gitti, ancak yine de hedef programa geçildi! Aslında, şimdi görünmeyen parametreler, siz alanı yeniden düzenleyene kadar korunur ve .lnkdosyalar aslında farklıdır. (Hedefle, geçirilen parametreleri yankılayan bir toplu iş dosyası olarak test edilmiştir.)
Bob

Yanıtlar:


13

Kim biliyordu? ... Görünüşe göre Windows @karakteri bir sınırlayıcı olarak ele alıyor . Windows komutları yalnızca komuttaki ilk öğeyi yorumlayacaktır ... böylece geri kalanını etkin bir şekilde kısaltır. Görünüşe göre, bir sağlayarak davranışı geçersiz kılabilirsiniz ^için ondan önce kaçmak sembolü.

yani

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


3
Hey! İşe yarıyor! Meraktan, bunun cevabını nasıl buldun?
Mark Henderson

3
Dün yıl karanlık gönderileri Deeeep. Bazı kişiler artık var olmayan (veya en azından kolay bulunmayan) belgelere atıfta bulunmuş ve bu çerezlerden bazılarından bahsetmiştir. Ayrıca diğer sorunlara neden olabilecek karakterler $ve %karakterler gibi şeylerden de bahsetti . Aynı ^karakteri kullanarak onlardan kaçabilirsiniz . ^^Beklediğiniz gibi yaparak kaçmaktan da kaçabilirsiniz .
TheCompWiz

4
@MarkHenderson "^" düzeltme işareti simgesi, "WIN32 (ve daha sonra 64-bit) API tarafından kullanılan standart" bir sonraki karakterden kaç "sembolüdür (doğru hatırlarsam) en az NT 3.5 (evet: yaşlanıyorum) ). Windows'da bir komut satırı sağlayabileceğiniz hemen hemen her yerde çalışır: CMD komut dosyaları / istemi, Windows + R çalıştırma kutusu, kısayollar, hizmetler ve zamanlanmış görevlerle ilişkili komut satırlarında, az.
Tonny
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.