ARGOMENTO
    about_methods

DESCRIZIONE BREVE
    Descrive come utilizzare metodi per eseguire azioni su oggetti in 
    Windows PowerShell.
 

DESCRIZIONE DETTAGLIATA
    In Windows PowerShell vengono utilizzate raccolte strutturate di 
    informazioni, dette oggetti, per rappresentare gli elementi degli 
    archivi dati o lo stato del computer. Ad esempio, quando si accede a 
    un file in Windows PowerShell, non si utilizza il file effettivo. Si 
    utilizza invece un oggetto FileInfo, un tipo di oggetto che ha la 
    funzione di proxy del file.


    La maggior parte degli oggetti include metodi. Un metodo è un 
    insieme di istruzioni che specificano una particolare azione 
    eseguibile con l'oggetto in questione. Ad esempio, nell'oggetto 
    FileInfo è incluso un metodo chiamato CopyTo, che consente di 
    copiare il file rappresentato dall'oggetto.


    Per visualizzare un elenco di metodi e relative definizioni 
    associati a un determinato oggetto, è possibile utilizzare il 
    cmdlet Get-Member. Tuttavia, per utilizzare il cmdlet, l'oggetto deve 
    esistere già in qualche forma: come variabile, come oggetto creato al 
    momento di specificare un comando, come argomento del comando 
    Get-Member o come oggetto passato attraverso una pipeline. 
    Si supponga ad esempio che alla variabile $a sia stato assegnato 
    un valore stringa, il che significa che la variabile è associata a 
    un oggetto stringa. Per visualizzare un elenco dei metodi dell'oggetto, 
    immettere il comando seguente al prompt dei comandi di Windows PowerShell:


        Get-Member -inputobject $a -membertype method


    Se si desidera visualizzare i metodi e le relative definizioni 
    associati a un oggetto passato attraverso la pipeline, occorre 
    utilizzare il comando Get-Member nella pipeline, come illustrato 
    nell'esempio seguente:


        Get-ChildItem c:\final.txt | Get-Member -membertype method


    Il modo più comune per richiamare un metodo è di specificarne il 
    nome dopo il riferimento a un oggetto, ad esempio una variabile o 
    un'espressione. Occorre separare il riferimento all'oggetto dal 
    metodo mediante un punto. Inoltre, è necessario utilizzare le 
    parentesi immediatamente dopo il nome del metodo per racchiudere 
    gli eventuali argomenti da passare al metodo. 


    Se in una firma di metodo non vengono passati argomenti, è necessario 
    utilizzare parentesi vuote.


    Ad esempio, nel comando seguente viene utilizzato il metodo 
    GetType() per restituire il tipo di dati associato all'oggetto 
    stringa $a:


        $a.GetType()


    Il metodo GetType restituisce il tipo di dati per qualsiasi 
    oggetto e una variabile rappresenta sempre un oggetto. Il tipo di 
    oggetto dipende dal tipo di dati archiviati nella variabile.


    Ogni azione eseguita in Windows PowerShell è associata a oggetti, 
    sia che si dichiari una variabile sia che si combinino più 
    comandi in una pipeline.
    Di conseguenza, è possibile utilizzare i metodi in diverse 
    situazioni. Ad esempio, è possibile utilizzare un metodo per eseguire 
    un'azione sul valore di una proprietà, come mostrato nel comando seguente:


        (Get-ChildItem c:\final.txt).name.ToUpper()


    In questo caso l'oggetto per il quale viene richiamato il metodo 
    ToUpper è l'oggetto stringa associato alla proprietà name. Si 
    noti che, affinché questo esempio possa funzionare, è necessario 
    che il file Final.txt si trovi nella radice dell'unità C:. La 
    proprietà del nome è in effetti una proprietà dell'oggetto FileInfo 
    restituita dal comando Get-ChildItem. Ciò dimostra non solo la natura 
    orientata agli oggetti di Windows PowerShell, ma anche come sia 
    possibile chiamare i metodi per qualsiasi oggetto accessibile.


    Lo stesso risultato dell'ultimo esempio può essere ottenuto 
    mediante una variabile che archivi l'output del comando 
    Get-ChildItem, come illustrato nell'esempio seguente:


        $a = (Get-ChildItem c:\final.txt).name
        $a.ToUpper()


    Nel comando viene nuovamente utilizzato il metodo ToUpper() 
    dell'oggetto stringa associato alla variabile, che contiene il 
    nome file restituito dal comando Get-ChildItem.


    In alcuni casi un metodo richiede un argomento per dirigerne 
    l'azione. Ad esempio, nell'oggetto FileInfo è incluso il metodo 
    MoveTo, che consente di spostare un file da un percorso a un altro. 
    Il metodo richiede un argomento che specifichi il percorso di 
    destinazione del file. Il comando seguente illustra come includere 
    tale argomento:


        (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt")


    Il comando Get-ChildItem restituisce un oggetto FileInfo per il file 
    Final.txt e utilizza il metodo MoveTo di tale oggetto per iniziare 
    l'azione e specificare il nuovo percorso del file.


    Per determinare gli argomenti associati a un metodo, esaminare la 
    corrispondente definizione di metodo. Una definizione di metodo 
    contiene una o più firme di metodo, note anche come overload in 
    Microsoft .NET Framework. Una firma di metodo contiene il nome di un 
    metodo e zero o più parametri che occorre fornire quando il metodo 
    viene chiamato. Ogni firma di metodo è separata da quella precedente 
    mediante una virgola nella visualizzazione del cmdlet Get-Member. Ad 
    esempio, il metodo CopyTo della classe FileInfo contiene le due firme 
    di metodo seguenti:


        1. CopyTo(String destFileName)
        2. CopyTo(String destFileName, Boolean overwrite)


    La prima firma di metodo acquisisce il nome file di destinazione, 
    incluso il percorso, in cui copiare il file di origine. Nell'esempio 
    seguente il primo metodo CopyTo è utilizzato per copiare Final.txt 
    nella directory C:\Bin:


        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt")


    Se il file è già presente nel percorso di destinazione, il metodo 
    CopyTo ha esito negativo e Windows PowerShell segnala l'errore 
    seguente:


        Eccezione durante la chiamata di "CopyTo" con "1" 
        argomento/i: "Il file 'c:\bin\final.txt' esiste già.".


    Nella seconda firma di metodo viene passato il nome file di 
    destinazione esattamente come nel primo caso, ma viene anche 
    passato un valore booleano per specificare se si desidera 
    sovrascrivere un file esistente con lo stesso nome nel percorso di 
    destinazione, come illustrato nell'esempio seguente:


        (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true)


    Quando si passa il valore booleano, è necessario utilizzare la 
    variabile $True, che viene creata automaticamente da Windows 
    PowerShell. La variabile $True contiene il valore booleano "true". 
    Ovviamente, la variabile $False contiene invece il valore booleano 
    "false".


VEDERE ANCHE
    about_Objects
    Get-Member





Argomenti della Guida