doskey中的宏定义无效

时间:2015-04-27 08:31:01

标签: powershell macros

fp=c:\Rational\ClearCase\etc\utils\fix_prot.exe -force -chgrp "TheNewGroup" -chown yourID $*
fp -rec -chmod 775 \\path\to\view\storage\yourID\yourView.vws
fp -root \\path\to\view\storage\yourID\yourView.vws

我尝试在Windows PowerShell中执行上述命令,并抛出类似

的错误
  

" FP" cmdlet无法识别的术语。

  

Invald宏定义。

但我使用macros:all命令查看doskey中存在的所有宏。 fp宏可用。

1 个答案:

答案 0 :(得分:0)

Doskey宏内置于CMD中,而不是PowerShell中。要在PowerShell中获得类似的行为,您可以使用catchall参数定义一个函数:

function fp {
  Param(
    [Parameter(ValueFromRemainingArguments=$true)]$params
  )

  & 'C:\Rational\ClearCase\etc\utils\fix_prot.exe' -force -chgrp 'TheNewGroup' -chown yourID @params
}

并将该功能添加到profile

PowerShell aliases在这里不起作用,因为您要指定默认参数集,但在PowerShell中,您只能命名命令,而不是整个命令行。