如何将命令行参数传递给由 doskey 调用的 PowerShell 脚本

cs_*_*ove 0 windows powershell cmd batch-file doskey

我有一个caller.cmd文件,它的 DOSKEY 设置如下:

DOSKEY startnow=call powershell getscalled.ps1 
Run Code Online (Sandbox Code Playgroud)

现在脚本getscalled.ps1在参数集中定义了两个开关参数,如下所示:

param(
    [Parameter(Mandatory=$false,ParameterSetName='first')]
    [switch]$thisIsFirst,
    [Parameter(Mandatory=$false,ParameterSetName='second')]
    [switch]$thisIsSecond
) 
Run Code Online (Sandbox Code Playgroud)

因此,一次只能提供两个参数之一。我希望使用我设置的 DOSKEY 从命令行本身提供参数。就像是:

startnow -thisIsFirst  
Run Code Online (Sandbox Code Playgroud)

有关如何实现这一目标的任何帮助?谢谢!

sub*_*der 5

创建这样的宏(所以使用 $1 $2... 作为参数);

DOSKEY startnow=script.ps1 $1
Run Code Online (Sandbox Code Playgroud)

所以,你可以打电话;

startnow -thisIsFirst  
Run Code Online (Sandbox Code Playgroud)

  • 是的,我对此进行了更多检查,发现末尾的“$*”将接受任意数量的参数。但我有一个奇怪的问题。我必须使用`==`而不是`=`,即`DOSKEY startnow==call powershell gets Called.ps1 $*`。否则它不起作用。这里的“=”和“==”有什么区别?任何想法? (2认同)