16Aug
Windows PowerShell ha una funzione di cronologia dei comandi integrata che fornisce informazioni dettagliate sui comandi eseguiti. Come il prompt dei comandi, PowerShell memorizza solo la cronologia dei comandi per la sessione corrente.
Come utilizzare il buffer della riga di comando
PowerShell dispone tecnicamente di due tipi di cronologia dei comandi. Innanzitutto, c'è il buffer della riga di comando, che è in realtà parte dell'applicazione grafica di PowerShell Terminal e non fa parte dell'applicazione Windows PowerShell sottostante. Fornisce alcune funzionalità di base:
- Freccia su : richiama il comando precedente che hai digitato. Premere ripetutamente il tasto per scorrere la cronologia dei comandi. Freccia giù : richiama il comando successivo che hai digitato. Premere ripetutamente il tasto per scorrere la cronologia dei comandi.
- F8 : cerca nella cronologia dei comandi un comando che corrisponde al testo sulla riga di comando corrente. Quindi, se volessi cercare un comando che inizia con "p", devi digitare "p" sulla riga di comando e poi toccare ripetutamente F8 per scorrere i comandi della cronologia che iniziano con "a".
Per impostazione predefinita, il buffer memorizza gli ultimi 50 comandi digitati. Per cambiarlo, fai clic con il pulsante destro del mouse sulla barra del titolo della finestra del prompt di PowerShell, seleziona "Proprietà" e modifica il valore di "Dimensione buffer" in Cronologia comandi.
Come visualizzare la cronologia di PowerShell
Windows PowerShell mantiene una cronologia dei comandi che hai digitato nella sessione di PowerShell corrente. Puoi utilizzare diversi cmdlet inclusi per visualizzare e lavorare con la tua cronologia.
Per visualizzare la cronologia dei comandi digitati, eseguire il seguente cmdlet:
Get-HistoryÈ possibile cercare la cronologia piping l'output risultante nel cmdlet Select-String e specificare il testo che si desidera cercare. Sostituisci "Esempio" nel cmdlet sottostante con il testo che vuoi cercare:
Get-History |Select-String -Pattern "Example"Per visualizzare una cronologia dei comandi più dettagliata che visualizza lo stato di esecuzione di ogni comando insieme alle sue ore di inizio e di fine, eseguire il seguente comando:
Get-History |Format-List -Property *Per impostazione predefinita, il cmdlet Get-History mostra solo le 32 voci della cronologia più recenti. Se si desidera visualizzare o cercare un numero maggiore di voci della cronologia, utilizzare l'opzione -Count per specificare il numero di voci della cronologia che PowerShell deve mostrare, in questo modo:
Get-History -Count 1000 Get-History -Count 1000 |Select-String -Pattern "Esempio" Get-History -Count 1000 |Format-List -Property *Come eseguire i comandi dalla cronologia
Per eseguire un comando dalla cronologia, utilizzare il seguente cmdlet, specificando il numero di identificazione dell'elemento della cronologia come mostrato dal cmdlet Get-History:
Invoke-History #Per eseguire due comandi dalla cronologia back to back, utilizzare Invoke-History due volte sulla stessa riga, separati da un punto e virgola. Ad esempio, per eseguire rapidamente il primo comando nella cronologia e poi il secondo, eseguire:
Invoke-History 1; Invoke-History 2Come cancellare la cronologia di PowerShell
Per cancellare la cronologia dei comandi che hai digitato, eseguire il seguente cmdlet:
Cancella cronologiaSi noti che il buffer della riga di comando è separato dalla cronologia di PowerShell. Quindi, anche dopo aver eseguito Clear-History, puoi continuare a premere i tasti freccia su e giù per scorrere i comandi che hai digitato. Tuttavia, se esegui Get-History, vedrai che la cronologia di PowerShell è in realtà vuota.
PowerShell non ricorda la cronologia tra le sessioni. Per cancellare entrambe le cronologie dei comandi per la sessione corrente, tutto ciò che devi fare è chiudere la finestra di PowerShell.
Se si desidera cancellare la finestra di PowerShell dopo aver cancellato la cronologia, è possibile farlo eseguendo il comando Cancella:
CancellaCome salvare e importare la cronologia di PowerShell
Se si desidera salvare la cronologia dei comandi di PowerShell per la correntesessione in modo da poter fare riferimento più tardi, è possibile farlo.
Get-History |Export-Clixml -Path c: \ users \ name \ desktop \ commands.xmlEsporta la cronologia dei comandi come un file XML dettagliato completo di valori "StartExecutionTime" e "EndExecutionTime" per ciascun comando che indica quando è stato eseguito il comando equanto tempo ci è voluto per completare.
Dopo aver esportato la cronologia di PowerShell in un file XML, è possibile importarlo in un'altra sessione di PowerShell con il cmdlet Add-History:
( o chiunque altro si invii il file XML).Add-History -InputObject( Import-Clixml -Path C: \ users \ name \ desktop \ commands.xml)Se si esegue il cmdlet Get-History dopo aver importato un tale file XML, vedrai che i comandi dall'XMLil file è stato importato nella cronologia della sessione PowerShell corrente.