我希望能夠獲得前一個命令的參數部分。 $^
似乎只返回命令而不是參數。 Get-History -count 1
返回包含命令和參數的最後一個完整命令。我可以。替換第一個實例,但我不確定它是否正確。在PowerShell中獲取上次調用的命令的參數?
情景是有時我想要做這樣的事情。讓我們假設$ *是參數傳遞給最後的命令:
dir \\share\files\myfile.exe
copy $* c:\windows\system32
任何想法如何正確地得到最後ARGS?
更新:完成我的做法。
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
}
現在我可以這樣做:
dir \\share\files\myfile.exe
copy (Get-LastArgs) c:\windows\system32
爲了降低打字,我做
set-alias $* Get-LastArgs
所以現在我還要做
copy ($*) c:\windows\system32
如果任何人有任何讓這個更好的想法請讓我知道。
+1有趣的問題。如果您沒有得到滿意的答案,請考慮使用PSReadLine,Alt +在connect.microsoft.com/powershell – x0n 2010-11-12 18:29:50
上提供此類功能。猛拉最後一個論點。如果你在數字論證之前加上它,它就會將其拉開。所以Alt + 0 Alt +。會抽出第一個參數 – IttayD 2016-07-11 04:19:10