16/01/2008

Recuperare informazioni sui cmdlet dalla guida di riferimento

A cura di Efran Cobisi
Tag: Nessun tag disponibile.


PowerShell mette a disposizione dell'utente un'ottima guida in linea in formato console, disponibile direttamente all'interno della shell.
Richiedere informazioni su di un particolare comando è semplice come richiamare il cmdlet Get-Help , fornendo come argomento il nome del comando di interesse.
Ecco, ad esempio, come accedere alla guida in linea del cmdlet Get-ChildItem:

Get-Help Get-ChildItem
NAME
    Get-ChildItem

SYNOPSIS
    Gets the items and child items in one or more specified locations.


SYNTAX
    Get-ChildItem [[-path] <string[]>] [[-filter] <string>] [-include <string[]
    >] [-exclude <string[]>] [-name] [-recurse] [-force] [<CommonParameters>]

[...]

La guida in linea è visualizzata nella lingua del pacchetto di installazione di PowerShell.

Tra i parametri accettati da Get-Help, troviamo -detailed, che consente il recupero di eventuali informazioni sui parametri del cmdlet e gli esempi di codice redatti dagli autori della guida, e -full, che in aggiunta ritorna la tabella di dettagli tecnici dei parametri ed gli argomenti correlati al comando di interesse.

Get-Help Get-ChildItem -full

La guida in linea sui cmdlet contenuti in Windows PowerShell è disponibile anche all'interno di powershell.it e consente di recuperare informazioni dettagliate sia sui cmdlet standard (inclusi nel pacchetto originale di Windows PowerShell) sia su di un numero crescente di cmdlet di produttori indipendenti.

La guida ufficiale di Windows PowerShell è disponibile su TechNet e contiene migliorie estetiche rispetto alla controparte solo testo; in questo caso, ovviamente, sono disponibili le informazioni dei soli cmdlet appartenenti al pacchetto standard di Windows PowerShell.

Ed ecco, infine, una funzione in grado di aprire una finestra del browser con la guida in linea live del vostro cmdlet preferito:

Function Get-LiveHelp
{
	# Definizione dei parametri

	Param (
		[string]$cmdLetName = '',
		[switch]$useTechNet
	)

	if ($useTechNet)
	{
		$url = 'http://technet.microsoft.com/en-us/library/bb978526.aspx'
	}
	else
	{
		# Carica l'assembly System.Web, utilizzato per l'encoding dell'url

		[Reflection.Assembly]::LoadWithPartialName("System.Web") |
			Out-Null

		# Determina l'url della guida in linea di interesse.

		$url = "http://www.powershell.it/Comandi/Cerca.aspx?q=" +
			"$( [Web.HttpUtility]::UrlEncode($cmdLetName) )" +
			"&l=true"
	}

	# Apre un browser ed accede alla guida in linea

	(new-object -com shell.application).Open($url)	
}

# Esempi di utilizzo:
# 1. Apre la guida di powershell.it sul comando desiderato

Get-LiveHelp Get-ChildItem

# 2. Apre la home della guida in linea ufficiale di Windows PowerShell

Get-LiveHelp -useTechNet

Commenti


17/01/2008 13.11
efran.cobisi: Credits alla versione di June Blender
Per chi fosse interessato, lo spunto per la realizzazione di questo snippet mi è stato dato da June Blender, che ne ha postato una versione ridotta (beh, mancava il riferimento a powershell.it!) all'interno del blog del team di Windows PowerShell, a questo indirizzo


Cobisi EmailVerify.NET is a Microsoft .NET software component that validates email addresses. valid email