我希望能够获得前一个命令的参数部分。 $^
似乎只返回命令而不是参数。 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