Sei sulla pagina 1di 13

ARGOMENTO

about_Comment_Based_Help

DESCRIZIONE BREVE
Viene descritta la modalità di scrittura della Guida basata su commenti
relativa a
funzioni e script.

DESCRIZIONE DETTAGLIATA
È possibile scrivere una Guida basata su commenti relativa a
funzioni e script mediante parole chiave commento speciali.

Il cmdlet Get-Help visualizza la Guida basata su commenti nello


stesso formato nel quale visualizza la Guida del cmdlet generata
da file XML. Gli utenti possono utilizzare tutti i parametri di
Get-Help, ad esempio Detailed, Full, Example e Online, per
visualizzare la Guida relativa a funzioni e script.

È inoltre possibile scrivere file della Guida basati su XML per


script e funzioni mediante parole chiave commento e reindirizzare
gli utenti a un file della Guida diverso.

In questo argomento viene illustrato come scrivere la Guida per


funzioni e script. Per informazioni su come visualizzare la Guida
per funzioni e script, vedere Get-Help.

SINTASSI PER LA GUIDA BASATA SU COMMENTI


La sintassi per la Guida basata su commenti è la seguente:
# .< parola chiave guida>
# <contenuto guida>

-oppure

<#
.< parola chiave guida>
< contenuto guida>
#>

La Guida basata su commenti viene scritta come una serie di


commenti. È possibile digitare un simbolo di commento (#) prima
di ogni riga di commenti oppure utilizzare i simboli "<#" e "#>"
per creare un blocco di commento. Tutte le righe all'interno del
blocco di commento vengono interpretate come commenti.

Tutte le righe di un argomento della Guida basata su commenti


devono essere contigue. Se un argomento della Guida basata su
commenti segue un commento che non fa parte dell'argomento, deve
essere presente almeno una riga vuota tra l'ultima riga di
commento non appartenente alla Guida e l'inizio della Guida
basata su commenti.

Le parole chiave definiscono ogni sezione della Guida basata su


commenti. Ogni parola chiave della Guida basata su commenti è
preceduta da un punto (.). Le parole chiave possono essere
disposte in qualsiasi ordine e i relativi nomi non fanno
distinzione tra maiuscole e minuscole.
La parola chiave Description, ad esempio, precede una descrizione
di una funzione o di uno script.

<#
.Description
Get-Function visualizza il nome e la sintassi di tutte le
funzioni nella sessione.
#>

Il blocco di commento deve contenere almeno una parola chiave.


Alcune delle parole chiave, ad esempio EXAMPLE, possono comparire
molte volte nello stesso blocco di commento. Il contenuto della
Guida per ogni parola chiave inizia dalla riga dopo la parola
chiave e può estendersi su più righe.

SINTASSI PER LA GUIDA BASATA SU COMMENTI NELLE FUNZIONI

La Guida basata su commenti relativa a una funzione può essere


visualizzata in una di tre diverse posizioni:

-- All'inizio del corpo della funzione.

-- Alla fine del corpo della funzione.

-- Prima della parola chiave Function. Tra l'ultima riga


della Guida relativa alla funzione e la parola chiave
Function non può essere presente più di una riga vuota.

Ad esempio:

function MyFunction
{
<#
.< parola chiave guida>
< contenuto guida>
#>

<comandi funzione>
}

-oppure

function MyFunction
{
<comandi funzione>

<#
.< parola chiave guida>
< contenuto guida>
#>
}

-oppure
<#
.< parola chiave guida>
< contenuto guida>
#>
function MyFunction { }

SINTASSI PER LA GUIDA BASATA SU COMMENTI NEGLI SCRIPT

La Guida basata su commenti relativa a uno script può essere


visualizzata in una delle due posizioni seguenti all'interno
dello script.

-- All'inizio del file di script. Nello script la Guida relativa


allo script può essere preceduta solo da commenti e righe vuote.

-- Se il primo elemento nel corpo dello script (dopo la Guida) è


una dichiarazione di funzione, devono essere presenti almeno
due righe vuote tra la fine della Guida relativa allo script e
la dichiarazione di funzione. In caso contrario, la Guida
verrà interpretata come Guida relativa alla funzione, non allo
script.

-- Alla fine del file di script.

Ad esempio:

<#
.< parola chiave guida>
< contenuto guida>
#>

function MyFunction { }

-oppure-

function MyFunction { }

<#
.< parola chiave guida>
< contenuto guida>
#>

PAROLE CHIAVE DELLA GUIDA BASATA SU COMMENTI


Di seguito sono elencate le parole chiave della Guida basata su
commenti valide. Queste sono disposte nell'ordine in cui vengono visualizzate
in un argomento della Guida, insieme alla descrizione del loro
utilizzo previsto.
Queste parole chiave possono essere visualizzate in qualsiasi
ordine nella Guida basata su commenti e non fanno distinzione tra
maiuscole e minuscole.
.SYNOPSIS
Breve descrizione della funzione o dello script. Questa
parola chiave può essere utilizzata una sola volta in ogni
argomento.

.DESCRIPTION
Descrizione dettagliata della funzione o dello script. Questa
parola chiave può essere utilizzata una sola volta in ogni
argomento.

.PARAMETER <Nome-Parametro>
Descrizione di un parametro. È possibile includere una parola
chiave Parameter per ogni parametro nella sintassi della
funzione o dello script.

Le parole chiave Parameter possono essere visualizzate in


qualsiasi ordine nel blocco di commento, ma la sintassi della
funzione o dello script determina l'ordine in cui i
parametri, e relative descrizioni, vengono visualizzati
nell'argomento della Guida. Per modificare l'ordine,
modificare la sintassi.

È inoltre possibile specificare una descrizione di parametro


posizionando un commento nella sintassi della funzione o
dello script immediatamente prima del nome della variabile
del parametro.
Se si utilizza un commento di sintassi e una parola chiave
Parameter, viene utilizzata la descrizione associata alla
parola chiave Parameter e il commento di sintassi viene ignorato.

.EXAMPLE
Comando di esempio che utilizza la funzione o lo script,
seguito facoltativamente da output di esempio e da una
descrizione. Ripetere questa parola chiave per ogni esempio.

.INPUTS
Tipi Microsoft .NET Framework di oggetti che è possibile reindirizzare alla
funzione o allo script. È inoltre possibile includere una
descrizione degli oggetti di input.

.OUTPUTS
Tipo .NET Framework degli oggetti restituiti dal cmdlet. È inoltre
possibile includere una descrizione degli oggetti restituiti.

.NOTES
Informazioni aggiuntive sulla funzione o sullo script.

.LINK
Nome di un argomento correlato. Ripetere questa parola chiave
per ogni argomento correlato.

Contenuto che viene visualizzato nella sezione Collegamenti


correlati dell'argomento della Guida.

Il contenuto della parola chiave Link può inoltre includere


un URI (Uniform Resource Identifier) per una versione online dello stesso
argomento della Guida. La versione online viene aperta quando si utilizza il
parametro Online di Get-Help. L'URI deve iniziare con "http" o "https".
.COMPONENT
Tecnologia o funzionalità utilizzata dalla funzione o dallo
script o a cui è correlato. Contenuto che viene visualizzato
quando il comando Get-Help include il parametro Component di
Get-Help.

.ROLE
Ruolo utente per l'argomento della Guida. Contenuto che viene
visualizzato quando il comando Get-Help include il parametro
Role di Get-Help.

.FUNCTIONALITY
Utilizzo previsto della funzione. Contenuto che viene
visualizzato quando il comando Get-Help include il parametro
Functionality di Get-Help.

.FORWARDHELPTARGETNAME <Command-Name>
Reindirizza l'utente all'argomento della Guida relativo al
comando specificato. È possibile reindirizzare gli utenti a
qualsiasi argomento della Guida, inclusi gli argomenti
relativi a una funzione, script, cmdlet o provider.

.FORWARDHELPCATEGORY <Categoria>
Specifica la categoria della Guida dell'elemento in
ForwardHelpTargetName.
I valori validi sono Alias, Cmdlet, HelpFile, Function,
Provider, General, FAQ, Glossary, ScriptCommand,
ExternalScript, Filter o All. Utilizzare questa parola chiave
per evitare conflitti in presenza di comandi con lo stesso nome.

.REMOTEHELPRUNSPACE <variabile-PSSession>
Specifica una sessione che contiene l'argomento della Guida.
Immettere una variabile che contiene PSSession. Questa parola
chiave viene utilizzata dal cmdlet Export-PSSession per
trovare gli argomenti della Guida relativi ai comandi esportati.

.EXTERNALHELP <Percorso file della Guida XML>


Specifica il percorso del file della Guida basato su XML
relativo allo script o alla funzione.

In Windows Vista e nelle versioni successive di Windows, se


il percorso specificato del file XML contiene sottodirectory
specifiche di impostazioni cultura relative all'interfaccia
utente, le sottodirectory ricercano in modo ricorsivo un file
XML con il nome dello script o della funzione in base agli
standard del fallback della lingua stabiliti per Windows
Vista, allo stesso modo in cui ricercano gli argomenti della
Guida basata su XML.

Per ulteriori informazioni sul formato del file della Guida basata su XML
del cmdlet, vedere l'argomento relativo alla creazione della Guida dei
cmdlet
in MSDN (Microsoft Developer Network) Library all'indirizzo
http://go.microsoft.com/fwlink/?LinkID=123415 (le informazioni potrebbero
essere in lingua inglese).

CONTENUTO GENERATO AUTOMATICAMENTE


Il nome, la sintassi, l'elenco dei parametri, la tabella degli
attributi dei parametri, i parametri comuni e i commenti vengono
generati automaticamente dal cmdlet Get-Help.

Nome:
La sezione nome di un argomento della Guida relativo a
una funzione deriva dal nome della funzione specificato
nella sintassi relativa. Il nome di un argomento della
Guida relativo a uno script deriva dal nome del file di
script. Per modificare il nome o la relativa distinzione
tra maiuscole e minuscole, modificare la sintassi della
funzione o il nome del file di script.

Sintassi:
La sezione sintassi dell'argomento della Guida viene
generata dalla sintassi dello script o della funzione.
Per aggiungere dettagli alla sintassi dell'argomento
della Guida, ad esempio il tipo .NET Framework di un parametro,
aggiungere il dettaglio alla sintassi. Se non si
specifica un tipo di parametro, il tipo "Object" viene
inserito come valore predefinito.

Elenco dei parametri:


L'elenco dei parametri nell'argomento della Guida viene
generato dalla sintassi della funzione o dello script e
dalle descrizioni aggiunte mediante la parola chiave
Parameters. I parametri della funzione sono contenuti
nella sezione "Parametri" dell'argomento della Guida
nello stesso ordine in cui vengono visualizzati nella
sintassi dello script o della funzione. Anche
l'ortografia e la distinzione tra maiuscole e minuscole
dei nomi dei parametri derivano dalla sintassi e non
dipendono dal nome del parametro specificato dalla parola
chiave Parameter.

Parametri comuni:
I parametri comuni vengono aggiunti alla sintassi e
all'elenco dei parametri dell'argomento della Guida,
anche se non producono alcun effetto. Per ulteriori informazioni
sui parametri comuni, vedere about_CommonParameters.

Tabella degli attributi dei parametri:


Get-Help genera la tabella degli attributi dei parametri
che viene visualizzata quando si utilizza il parametro
Full o Parameter di Get-Help. Il valore degli attributi
Required, Position e Default deriva dalla sintassi
della funzione o dello script.

Commenti:
La sezione commenti dell'argomento della Guida viene
generata automaticamente dal nome dello script o della
funzione. Non è possibile modificare il contenuto di
questa sezione.

ESEMPI

Esempio 1: Guida basata su commenti relativa a una funzione


Nella funzione di esempio seguente è inclusa una Guida basata
su commenti:

function Add-Extension
{
param ([string]$Name,[string]$Extension = "txt")
$name = $name + "." + $extension $name

<#
.SYNOPSIS
Aggiunge un'estensione di file a un nome fornito.

.DESCRIPTION
Aggiunge un'estensione di file a un nome fornito. Accetta
qualsiasi stringa per il nome o l'estensione di file.

.PARAMETER Name
Specifica il nome del file.

.PARAMETER Extension
Specifica l'estensione di file. "Txt" è l'estensione predefinita.

.INPUTS
Nessuno. Non è possibile reindirizzare oggetti a
Add-Extension.

.OUTPUTS
System.String. Add-Extension restituisce una stringa con
il nome o l'estensione di file.

.EXAMPLE
C:\PS> extension -name "File"
File.txt

.EXAMPLE
C:\PS> extension -name "File" -extension "doc"
File.doc

.EXAMPLE
C:\PS> extension "File" "doc"
File.doc

.LINK
Versione online: http://www.fabrikam.com/extension.html

.LINK
Set-Item
#>
}

Di seguito sono illustrati i risultati:

C:\PS> get-help add-extension -full

NOME
Add-Extension
SYNOPSIS
Aggiunge un'estensione di file a un nome fornito.

SINTASSI
Add-Extension [[-Name] <String>] [[-Extension] <String>]
[<CommonParameters>]
DESCRIZIONE
Aggiunge un'estensione di file a un nome fornito. Accetta
qualsiasi stringa per il nome o l'estensione di file.

PARAMETRI
-Name
Specifica il nome del file.

Required? false
Position? 0
Valore predefinito
Accept pipeline input? false
Accept wildcard characters?

-Extension
Specifica l'estensione. "Txt" è l'estensione predefinita.

Required? false
Position? 1
Valore predefinito
Accept pipeline input? false
Accept wildcard characters?

<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose,
-Debug, ErrorAction, -ErrorVariable, -WarningAction,
-WarningVariable, OutBuffer e -OutVariable. Per
ulteriori informazioni, digitare "get-help
about_commonparameters".

INPUTS
Nessuno. Non è possibile reindirizzare oggetti a
Add-Extension.

OUTPUTS
System.String. Add-Extension restituisce una stringa con
il nome o l'estensione di file.

-------------------------- ESEMPIO 1 --------------------------


C:\PS> extension -name "File"
File.txt

-------------------------- ESEMPIO 2 --------------------------


C:\PS> extension -name "File" -extension "doc"
File.doc

-------------------------- ESEMPIO 3 --------------------------


C:\PS> extension "File" "doc"
File.doc

COLLEGAMENTI CORRELATI
Versione online: http://www.fabrikam.com/extension.html
Set-Item

Esempio 2: Descrizioni dei parametri nella sintassi della funzione

Questo esempio corrisponde al precedente, ad eccezione del


fatto che le descrizioni dei parametri sono inserite nella
sintassi della funzione. Questo formato è soprattutto utile
quando le descrizioni sono brevi.

function Add-Extension
{
param
(
[string]
# Specifica il nome file.
$name,

[string]
# Specifica l'estensione. "Txt" è l'estensione
predefinita.
$extension = "txt"
)
$name = $name + "." + $extension
$name

<#
.SYNOPSIS
Aggiunge un'estensione di file a un nome fornito.

.DESCRIPTION
Aggiunge un'estensione di file a un nome fornito. Accetta
qualsiasi stringa per il nome o l'estensione di file.

.INPUTS
Nessuno. Non è possibile reindirizzare oggetti a
Add-Extension.

.OUTPUTS
System.String. Add-Extension restituisce una stringa con
il nome o l'estensione di file.

.EXAMPLE
C:\PS> extension -name "File"
File.txt

.EXAMPLE
C:\PS> extension -name "File" -extension "doc"
File.doc

.EXAMPLE
C:\PS> extension "File" "doc"
File.doc

.LINK
Versione online: http://www.fabrikam.com/extension.html
.LINK
Set-Item
#>
}

Esempio 3: Guida basata su commenti relativa a uno script

Nello script di esempio seguente è inclusa una Guida basata


su commenti.

Si notino le righe vuote tra il simbolo di chiusura "#>" e


l'istruzione Param. In uno script privo di istruzione Param,
devono essere presenti almeno due righe vuote tra il commento
finale nell'argomento della Guida e la prima dichiarazione di
funzione. Senza queste righe vuote, Get-Help associa
l'argomento della Guida alla funzione, non allo script.

<#
.SYNOPSIS
Esegue aggiornamenti mensili dei dati.

.DESCRIPTION
Lo script Update-Month.ps1 aggiorna il Registro di sistema
con i nuovi dati generati lo scorso mese e genera un report.

.PARAMETER InputPath
Specifica il percorso del file di input basato su CSV.

.PARAMETER OutputPath
Specifica il nome e il percorso del file di output basato
su CSV. Per impostazione predefinita, MonthlyUpdates.ps1
genera un nome in base alla data e all'ora in cui viene
eseguito e salva l'output nella directory locale.

.INPUTS
Nessuno. Non è possibile reindirizzare oggetti a
Update-Month.ps1.

.OUTPUTS
Nessuno. Update-Month.ps1 non genera alcun output.

.EXAMPLE
C:\PS> .\Update-Month.ps1

.EXAMPLE
C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv

.EXAMPLE
C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
-outputPath C:\Reports\2009\January.csv
#>

param ([string]$InputPath, [string]$OutPutPath)

function Get-Data { }
...

Il comando seguente ottiene la Guida dello script. Poiché lo


script non si trova in una directory elencata nella variabile
di ambiente Path, nel comando Get-Help che ottiene la Guida
dello script deve essere specificato il percorso dello script.

PS C:\ps-test> get-help .\update-month.ps1 -full

NOME
C:\ps-test\Update-Month.ps1

SYNOPSIS
Esegue aggiornamenti mensili dei dati.

SINTASSI
C:\ps-test\Update-Month.ps1 [-InputPath] <String>
[[-OutputPath] ]<String>] [<CommonParameters>]

DESCRIZIONE
Lo script Update-Month.ps1 aggiorna il Registro di
sistema con i nuovi dati generati lo scorso mese e
genera un report.

PARAMETRI
-InputPath
Specifica il percorso del file di input basato su CSV.

Required? true
Position? 0
Valore predefinito
Accept pipeline input? false
Accept wildcard characters?

-OutputPath
Specifica il nome e il percorso del file di output
basato su CSV. Per impostazione predefinita,
MonthlyUpdates.ps1 genera un nome in base alla
data e all'ora in cui viene eseguito e salva
l'output nella directory locale.

Required? false
Position? 1
Valore predefinito
Accept pipeline input? false
Accept wildcard characters?
<CommonParameters>
Questo cmdlet supporta i parametri comuni
-Verbose, -Debug, ErrorAction, -ErrorVariable,
-WarningAction, -WarningVariable, OutBuffer e
-OutVariable. Per ulteriori informazioni,
digitare "get-help about_commonparameters".

INPUT
Nessuno. Non è possibile reindirizzare oggetti a
Update-Month.ps1.
OUTPUT
Nessuno. Update-Month.ps1 non genera alcun output.

-------------------------- ESEMPIO 1 --------------------------


C:\PS> .\Update-Month.ps1

-------------------------- ESEMPIO 2 --------------------------


C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv

-------------------------- ESEMPIO 3 --------------------------


C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv
-outputPath
C:\Reports\2009\January.csv

COLLEGAMENTI CORRELATI

Esempio 4: Reindirizzamento a un File XML

È possibile scrivere argomenti della Guida basati su XML


relativi a funzioni e script. Anche se la Guida basata su
commenti risulta essere di più facile implementazione, la
Guida basata su XML è necessaria qualora si desideri
esercitare un controllo più preciso sul contenuto della Guida
o si intenda tradurre gli argomenti della Guida in più lingue.

Nell'esempio seguente vengono illustrate le prime righe dello


script Update-Month.ps1. Nello script viene utilizzata la
parola chiave ExternalHelp per specificare il percorso di un
argomento della Guida basato su XML relativo allo script.

# .ExternalHelp C:\MyScripts\Update-Month-Help.xml

param ([string]$InputPath, [string]$OutPutPath)

function Get-Data { }
...

Nell'esempio seguente viene illustrato l'utilizzo della parola


chiave ExternalHelp in una funzione.

function Add-Extension
{
param ([string] $name, [string]$extension = "txt")
$name = $name + "." + $extension $name

# .ExternalHelp C:\ps-test\Add-Extension.xml }

Esempio 5: Reindirizzamento a un argomento della Guida diverso

Il codice seguente è tratto dall'inizio della funzione Help


incorporata in Windows PowerShell che consente di
visualizzare una schermata alla volta di testo della Guida.
Poiché l'argomento della Guida relativo al cmdlet Get-Help
descrive la funzione Help, quest'ultima utilizza le parole chiave
ForwardHelpTargetName e ForwardHelpCategory per reindirizzare
l'utente all'argomento della Guida relativo al cmdlet Get-Help.

function help
{

<#
.FORWARDHELPTARGETNAME Get-Help
.FORWARDHELPCATEGORY Cmdlet
#>
[CmdletBinding(DefaultParameterSetName='AllUsersView')] param(
[Parameter(Position=0, ValueFromPipelineByPropertyName
=$true)] [System.String]
${Name},
...

Il comando seguente utilizza questa funzionalità:

C:\PS> get-help help

NOME
Get-Help

SYNOPSIS
Visualizza informazioni sui cmdlet e i concetti
relativi a Windows PowerShell.
...

VEDERE ANCHE
about_Functions
about_Functions_Advanced_Parameters
about_Scripts
"Modalità di scrittura della Guida dei cmdlet"
(http://go.microsoft.com/fwlink/?LinkID=123415)
(le informazioni potrebbero essere in lingua inglese)

Potrebbero piacerti anche