, if
için sözdizimi olarak böyledir: bu iki Yani`if (Test-Path ...)` aslında nasıl çalışır? PowerShell'de
write-output (get-date)
:
if (<test1>)
{<statement list 1>}
[elseif (<test2>)
{<statement list 2>}]
[else
{<statement list 3>}]
Başka sözdizimi kural subexpressions için, böyle parantez kullanmak gerekir olmasıdır Kurallar birleştirildiğinde, bazı yolların sınanması gibi iki parantez ile yazılması gerekir:
if ((Test-Path ...)) {
# do something
}
Ancak bu da çalışır:
if (Test-Path ...) {
# do something
}
ve sadece şeyiyle uğruna, bu yapar değil eser:
buradaif (!Test-Path ...) {
# do something
}
(, sen alt ifade sarmak gerekir her zamanki gibi parantez içinde).
Burada uygulanan sözdizimi kurallarını açıklayan herhangi biri olabilir mi ve IF testini yalnızca bir parantez ile birlikte kullanabileceğim nasıl olur? Bazı PowerShell sihir mi yoksa temel sözdizimi kurallarını yanlış anlıyor muyum? if
bir alt ifade define (parantez Test-Path
etrafında gerekli olsaydı, o zaman etrafında parens $num -eq 5
ve diğer her ifadeyi gerekir) sonra
Bunu deneyin: 'true ise. Size bir * ayrıştırıcı * hatası verecektir. Uzman değilim ama bu bana parantezlerin burada bir alt-ifade operatörü değil, bir dil yapısı olduğunu gösteriyor. – Borek
@Borek: PowerShell'de yazmanız gereken şey, $ True ise – wunth