PowerShell komut başlıklarının herhangi bir parametre olmadan kullanımı


0

Belirtildiği gibi İşte PowerShell yardımının sözdiziminde:

Parametreler zorunlu veya isteğe bağlı olabilir. Bir sözdizim şemasında, isteğe bağlı       öğeler parantez içine alınmış ([]).

Yani bir emir gibi Set-NetIPAddress belirtildiği gibi:

NAME
    Set-NetIPAddress

SYNOPSIS
    Modifies the configuration of an IP address.


SYNTAX
    Set-NetIPAddress [[-IPAddress] [<String[]>]] [-AddressFamily [<AddressFamily[]>]] [-AddressState
    [<AddressState[]>]] [-CimSession [<CimSession[]>]] [-IncludeAllCompartments] [-InterfaceAlias [<String[]>]]
    [-InterfaceIndex [<UInt32[]>]] [-PassThru] [-PolicyStore [<String>]] [-PreferredLifetime [<TimeSpan>]]
    [-PrefixLength [<Byte>]] [-PrefixOrigin [<PrefixOrigin[]>]] [-SkipAsSource [<Boolean>]] [-SuffixOrigin
    [<SuffixOrigin[]>]] [-ThrottleLimit [<Int32>]] [-Type [<Type[]>]] [-ValidLifetime [<TimeSpan>]] [-Confirm]
    [-WhatIf] [<CommonParameters>]

    Set-NetIPAddress [-CimSession [<CimSession[]>]] [-PassThru] [-PreferredLifetime [<TimeSpan>]] [-PrefixLength
    [<Byte>]] [-SkipAsSource [<Boolean>]] [-ThrottleLimit [<Int32>]] [-ValidLifetime [<TimeSpan>]] [-Confirm]
    [-WhatIf] [<CommonParameters>]

gerekli parametreler yoktur, ancak bu komutu çalıştırmanın ve herhangi bir parametresiz diğerlerini çalıştırırken, sonuçta açık bir sonucu olmayan, sadece yeni bir bilgi istemine gidilmesi ne işe yarar?


Olduğu gibi Set-* cmdlet'i herhangi bir parametre olmadan çalıştırmak için herhangi bir neden yoktur. Ama asıl sorunuz nedir? İçin mantık Set-NetIPAddress Muhtemelen hiçbir şeyi değiştirmek istemediğinizdir ve bu nedenle her şey başarılı olmuştur. Ne çıktı bekliyordun?
Seth

Sadece merak ediyorum.Ayrıca, sözdiziminde gerekli parametreye sahip olmayan ancak herhangi bir parametre atmadan bir hata yapmadan çalışan bir komut olduğunu hatırlıyorum. Şimdi hatırlayamadım.
harsini

Bunun için evrensel bir cevap bulamayacaksınız çünkü cmdlet'i yazan kişiye bağlı. Bir dizi parametre gerektiren çok sayıda cmdlet, bu parametreleri sağlamadığınız takdirde sizden isteyecektir (bağımsız olarak adlandırıldıkları sürece). En azından benim deneyimim.
Seth

-InputObject için gerekli set-netipaddress çalışırken görüldüğü gibi get-help set-netipaddress -full
SimonS

Gerekirse, herhangi bir parametre olmadan kullanıldığında bir hata mesajı döndürülmelidir.
harsini

Yanıtlar:


0

İki şey.

  1. Tahmin ediyorum, çoğu PowerShell cmdlet'inde olduğu gibi, bu değerlerin bazılarını boru hattına geçirebilirsiniz (yani bundan önce başka bir komuttan gelen) '192.168.1.3' | Set-NetIPAddress ). Bu durumda, kelimenin geleneksel anlamında sağlanan hiçbir parametre olmazdı.

  2. Gördüğünüz şeyin PowerShell sözdizimi şemalarında bir sınırlama olabileceğini düşünüyorum. Bu parametrelerden en az birini sağlamanız gerekeceğini tahmin ediyorum, ancak bir bakıma hepsinin “isteğe bağlı” olmasını sağlayan özellikle kimse gerekli değil.

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.