2010-10-14 25 views
9

Klasör izinlerinde değişiklik yapmak için bir komut dosyası yazma aşamasındayım. Bunu yapmadan önce, doğru dizinde çalıştığımdan emin olmak için biraz kontrol yapmak isterim. Benim sorunum, komut dosyası ilerlemeden önce dört alt klasörün (yani Admin, Workspace, Com, & Veri) var olup olmadığını kontrol etmektir. Her dizinde Test Yolu kullanacağımı varsayalım.PowerShell: Birden çok koşul nasıl denetlenir (klasör varlığı)

cevap

14

Aşağıdaki sorun nedir?

if ((Test-Path $path1) -and (Test-Path $path2)) { 

} 
2

İpucu:

-LiteralPath belirtmek unutmayın - herhangi bir olası yanlış yorumlanmasını durdurur. Ben bununla birlikte "orada" oldum (kod yazmak için).

0

Test Yolu birden fazla yolu tek seferde kontrol edebilir. Bunun gibi:

Test-Path "c:\path1","c:\path2" 

Çıktı, ilgili her yol için bir Doğru/Yanlış dizisi olacaktır.

Bu özellikle, kontrol edilecek çok fazla dosya/klasörünüz varsa yardımcı olabilir.

Kontrol bütün yollar ise mevcut:

if ((Test-Path $arraywithpaths) -notcontains $false) {...} 
olmayan varlığı için

Aynı şekilde:

if ((Test-Path $arraywithpaths) -contains $false) {...} 
İlgili konular