komut isteminde '&' karakteri için bir kaçış var mı?


Yanıtlar:


9

Yapmanız gereken, şifrenizi aşağıdaki gibi çift tırnak içine almaktır:

set pwd="abc&123"
echo %pwd%

Nasıl gittiğini bana bildirin.


1
Bazı senaryolarda tercih edilebilecek diğer bir seçenek deset "pwd=abc&123"
Harry Johnston

1
-1 bunun 5 yukarı oyu olması şaşırtıcı, yanlış. Windows% var% veya! Var! kolayca kendiniz test edebilirsiniz. $ var
linux'ta

1
@barlop: soruyu ele alan diğer satır olduğu için, bunun önemli olduğunu görmüyorum.
Harry Johnston

7

En iyi hem martineau cevabının hem de mastashake57 cevabının bir kombinasyonu ile işe yaradığını gördüm.

set pwd=abc^&123
echo %pwd%

Hala başarısız oluyor ve

set pwd="abc&123"
echo %pwd%

Ona tırnak ekler (ve işareti bir fordöngü veya dize manipülasyonu ile kaldıramazsınız, çünkü ve işareti sayesinde tekrar başarısız olur), bu harika değil.

Ancak,

set "pwd=abc^&123"
echo %pwd%

Mükemmel çalışıyor.

Umarım yardımcı olur.


+1. Ortam değişkeni, yani bu yapraklar karat, o setleri unutmayın pwdetmek abc^&123. Çoğu zaman bu muhtemelen tam olarak yapmanız gereken şeydir, ancak neler olduğunu bilmiyorsanız sizi yakalayabilir.
Harry Johnston

@HarryJohnston Yazım hatasını düzeltmeliyim. Bu araba. btw biliyorum ntcmds.chm bundan bahsediyor, ama cmd /? karakter kaçış karakteri caret bahsedildi?
barlop

@Barlop: öyle; Homonym ile karıştırıyordum. Genel bir kural olarak /?, kapsamlı bir dokümantasyon değil, sadece bir özet sunar.
Harry Johnston

@barlop,? Düzeltme işareti kaçış karakteri.
Pacerier

@ Pacerer evet, şapka kaçış karakteri, kimse buna katılmıyor. ve ntcmds.chm'de (ntcmds.chm'de XP ile geldi ve eşdeğer bir çevrimiçi microsoft.com/resources/documentation/windows/xp/all/proddocs/… ve kaçınılması gereken bir şey olduğu belirtiliyor. daha güncel çevrimiçi olabilir - belki daha fazla komut). Sadece nerede / diye soruyordum. (herhangi bir yerde), işaretin kaçış karakteri olduğunu söyler
barlop

7

Komut satırı başvuru yardım dosyasından:

Ve işareti (&), dikey çizgi |

İçinde tedaviye ihtiyaç duyan ikiden fazla karakter varsa, tüm parolayı tırnak içine almak tek tek karakterlerden kaçmaktan daha kolay olacaktır.


Ve tırnak içinde tırnak?
Pacerier

4

Gerçekten ihtiyacınız olan şey:

set pwd=abc^^^&123
echo %pwd%

Veya:

set "pwd=abc^&123"
echo %pwd%

Açıklama:

Yana &özel bir karakter, sen onu kaçmak gerekir ^sonuçlanan ^&.

Çalıştırmak set pwd=abc^&123, değişkeni değere ayarlar abc&123. Bundan sonra, koşacak echo %pwd%olsaydın, etkili bir şekilde koşuyorsun echo abc&123.

Yine echo abc&123de beklediğiniz gibi çalışmıyor, çünkü &özel bir karakter. Tırnak işaretleri ekleyerek bundan kaçınabilirsiniz: echo "abc&123"ancak çıktınızda da tırnak işaretleri bulunur . Başka bir deyişle, tırnak kullanmak tam olarak uygun bir çözüm değildir.

Komutu &çalıştırdığınızda karakterden kaçmak için ihtiyacınız olan şey echo:

echo abc^&123

Yani değişkenin değeri içermesi gerekir abc^&123. Değişkeni değere ayarlamak için abc^&123özel karakterlerden kaçmanız ^ve &bunun sonucunda:

set pwd=abc^^^&123


Harika çalışıyor, teşekkürler. Bu kaçış karakteri dokümanda bazı nedenlerden bahsedilmiyor docs.microsoft.com/tr-tr/windows-server/administration/…
Sergey Smolnikov
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.