Voglio essere in grado di ottenere la porzione argomento del comando precedente. $^
sembra restituire solo il comando e non gli argomenti. Get-History -count 1
restituisce l'ultimo comando completo incluso il comando e gli argomenti. Potrei semplicemente. Sostituire la prima istanza, ma non sono sicuro che sia corretta.Ottenere gli argomenti dell'ultimo comando invocato in powershell?
Lo scenario è che a volte voglio fare qualcosa di simile. Supponiamo che $ * sono gli argomenti per l'ultimo comando:
dir \\share\files\myfile.exe
copy $* c:\windows\system32
Delle idee come ottenere le ultime args correttamente?
UPDATE: finito il mio metodo per fare questo.
function Get-LastArgs
{
$lastHistory = (Get-History -count 1)
$lastCommand = $lastHistory.CommandLine
$errors = [System.Management.Automation.PSParseError[]] @()
[System.Management.Automation.PsParser]::Tokenize($lastCommand, [ref] $errors) | ? {$_.type -eq "commandargument"} | select -last 1 -expand content
}
ora posso solo fare:
dir \\share\files\myfile.exe
copy (Get-LastArgs) c:\windows\system32
Per ridurre la digitazione, ho fatto
set-alias $* Get-LastArgs
così ora ho ancora da fare
copy ($*) c:\windows\system32
se qualcuno ha qualsiasi idea per renderlo migliore per favore fatemelo sapere.
+1 domanda interessante. se non si ottiene una risposta soddisfacente al di fuori di questo, si consiglia di suggerire tale funzionalità su connect.microsoft.com/powershell – x0n
con PSReadLine, Alt +. tira l'ultimo argomento. Se lo precede con un argomento digitale, lo strappa. Quindi Alt + 0 Alt +. tirerà il primo argomento – IttayD