2012-10-22 7 views
6

PowerShell'de komut satırı arabiriminin nasıl kullanılacağını öğrenmek için Hard Way'in öğreticisini öğrenmeyi takip ediyorum. this makalesinde, mkdir -p i\like\icecream komutunu kullanmamı bildirir. Altta, "mkdir -p, tüm dizinler mevcut olmasa bile tüm yolu oluşturacaktır" açıklıyor.mkdir ve mkdir -p arasındaki fark?

Şaşkınım, -p argümanı olmadan mkdir i\like\icecream olarak hala aynı şeyi yapıyor. Ben bir "bir" dizin oluşturma ve mkdir ile "one \ two \ three" oluşturma gibi şeyler yaptım ve yaptım ve otomatik olarak yerleştirilmek üzere üç için iki dizin oluşturur. PowerShell otomatik olarak -p veya bir şey varsayar bunun gibi durumlar? Bu argümanın ne yaptığı konusunda bir kayıp yapıyorum.

cevap

12

PowerShell, tam olarak vermeseniz bile ne demek istediğinizi belirlemek için elinden geleni yapar. Bu nedenle, -p parametresini kullanırsanız, aslında -path kullanıyorsunuz.

mkdir işlevi için, -path parametresi, işlevin oluşturma yolunu bildirir. Açık parametreler sağlanmamışsa, -path da varsayılan olarak işlevin ilk argümanıdır. Bu nedenle fonksiyonun -p (-path) ile ve -p olmadan çağrılması, fonksiyon söz konusu olduğunda tamamen aynı şeydir. Daha fazla bilgi için

, kabuk türü:

Get-Help mkdir 

Ben de netleştirecek Eğer mkdir çağırdığınızda o, ne gerçekten Yeni-Ürün cmdlet'ini çağıran ve Directory gibi -ItemType parametresini belirttiğini yapıyoruz . Bu nedenle, bu komutu çalıştırdığınızda Yeni Öğe yardımını görüyorsunuz. Bunun nasıl yapıldığını görmek için mkdir işlevinin gerçek kodunu görmek isterseniz, bunu yapın:

(get-command mkdir).ScriptBlock 
+0

Ah, bu mantıklı. Öğretici daha önce sadece 'mkdir' kullanmamı istemişti, sonra farklı bir şey yapmak için görünmeyen '-p' şeyi attı. Hızlı cevap için teşekkürler! –

+2

Sanırım '-p',' mkdir''in * nix varyantıyla bir karışıklıktan geliyor. Bu gerçekten de -p' üzerinde farklı davranıyor, bu da öğreticinin önerdiği gibi eksik ana klasörleri de yaratacaktır. – Femaref

+0

Powershell ekibi, takma adlar ve işlevler sağlamak için * nix yöneticileri daha rahat hale getirecek uyumlu bir çaba gösterdi. Bazen sanırım biraz karışıklık da ekleyebilir. – EBGreen