2016-04-14 11 views
0

istemi. Ben GnuWin32 en diff Win 7'de kullanıyorum belirtin nasıl. Öyle olmalıdır . komut satırından normal bir ifade kabul eden bir -I seçenek Ben normal bir ifade belirten bir toplu iş dosyasında diff çağırmak istiyorum Ancak, benim düzenli ifade içindeki ^ " ve white-space özel karakterler ile karmaşık biridir., Windows Komutanlığı'nda Aynı Anda^"white-space ben pencerelerde parametreler komut istemi gibi özel karakterler <code>^</code> ve <code>"</code> nasıl belirleneceğini anlamakta güçlük

^[ \t]*#[ \t]*include[ \t]+"c:\\program files 

Ben Wind anlamak mümkün değilim ^ ve " ilgili özel kuralları vardır, bu durumda komut satırında özel karakterler belirtilmesine ilişkin WSİ kuralları. Yukarıdaki normal ifadeyi komut satırında nasıl belirleyeceğim?

diff -I "^[ \t]*#[ \t]*include[ \t]+"c:\\program files" file1 file2 

Ama orta karışıklık her şey içinde ":

Ben bu gibi görünmelidir sanırım. ^ ve " ile nasıl ilgilenirim? diff Perl tarzı \t dizisini desteklemez grep tarzı düzenli ifade kullanıyor, Bir kere

diff -I "^[[:space:]]*#[[:space:]]*include[[:space:]]\+\"c:\\\\program file" file1 file2 

:

+0

'echo ^^ [\ t] * # [\ t] * dahil [\ t] +" c: \\ program dosyaları "dizginizle eşleşir veya olduğu gibi iletmeyi de önerir. –

+0

no, Yukarıdaki dize argümanını argüman olarak vermeliyim, yani komut satırı: diff -I^[... ”... file1 file2. Eğer komut penceresinde komut satırında yazıyorsam, bu hata pencerede nasıl belirtileceğini anlayamadığım özel diziler gerektiren beyaz boşluk. (Kuralların hepsi benim için çok karmaşık ve tutarsızdır)) – JavaMan

+0

Peter

cevap

0

bazı araştırma ve testten sonra, bu gerekli normal ifade olmalıdır. Bir " literal belirtmek için \" kullanmamız gerekiyor. Ayrıca

, benim yaptığım gibi bir program geçirilen parametre test etmek pencereler toplu dosyasını kullanmayın.

Başka bir deyişle, bir kaç echo s ile bu toplu iş dosyası diff.bat Kullanmak hat argümanları komut sağladığını test yardımcı olabilir düşünüyorum asla:

echo %1 
echo %2 
echo %3 
echo %4 

Yazma ve bunun için bir program derlemek ve onu komutu dökümü var çizgi argümanları.

+0

Not C çalışma zamanı ayrıştırıcı (bu muhtemelen en iyi seçenek olmamasına rağmen!) bu yüzden kendi C programı yazarken uygun bir seçenektir. diğer durumlarda, tahminden kullanın veya kaynak kodunu veya satıcı belgelerine başvurun gerekebilir. –

+0

Oh, bir başka komplikasyon: caret cmd.exe'nin teklif karakteridir, ancak tüm özel karakterler gibi sadece çift tırnak işareti dışında uygulanır. Böylece, gösterdiğiniz dizedeki karikatür, kelimenin tam anlamıyla alınır çünkü ilk iki tırnak işareti arasındadır. İkinci çifte fiyat teklifinden sonra bir fişek koymak zorunda kalsaydınız, onu iki katına çıkarmanız gerekirdi. –

İlgili konular