如何从快捷方式文件向 PowerShell 传递多个命令?

emb*_*oel 8 powershell command-line-interface

Windows 快捷方式的简单愿望:我想在特定目录中打开 PowerShell 窗口,然后让快捷方式输入并运行命令。

这是编辑快捷方式的“目标”时的样子:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -command "cd 'C:\eARKIV\Programmer\Android ADB'" -Command 'test'
Run Code Online (Sandbox Code Playgroud)

目录更改有效,但在尝试通过快捷方式输入输入时出现以下错误:

"Set-Location : A parameter cannot be found that matches parameter name 'Command'."
Run Code Online (Sandbox Code Playgroud)

我怎样才能规避这一点并让它发挥作用?:(

mkl*_*nt0 9

仅支持一个 -Command论点;正如解释的那样,(第一个)之后的所有内容都-Command成为要在新会话[1] 中执行的命令的一部分powershell -?

要传递多个命令,请;"..."传递给(一个且唯一的)
-Command参数的字符串中使用:

... -NoExit -Command "cd 'C:\eARKIV\Programmer\Android ADB'; & 'test'"
Run Code Online (Sandbox Code Playgroud)

请注意,-Command必须是最后一个传递的参数。[2]


[1]因此,-Command 'test'一不小心就成了额外的参数传递给您的cdSet-Location新的PowerShell会话内)的命令,这是什么错误抱怨-这也意味着该cd命令并没有改变当前位置成功(工作目录)

[2]从技术上讲,您可以按照-Command多个参数,但他们都成为了代码的一部分,在新的PowerShell会话执行。为了概念清楚并避免(更严重的)逃逸和报价头痛,优选的是,所有的命令通过作为单一"..."-quoted字符串。