使用多行命令参数批量启动 PowerShell
我想将批处理文件中的几行代码作为 -command 参数传递给 powershell.exe。
例如,这样的代码:
SET LONG_COMMAND=
if ($true)
{
Write-Host "Result is True"
}
else
{
Write-Host "Result is False"
}
START Powershell -noexit -command "%LONG_COMMAND%"
我想在不创建 PowerShell 脚本文件的情况下执行此操作,只创建一个批处理文件。
是否可以?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以添加“^”来继续分配给变量的字符串。这会将命令创建为单行,因此您需要使用“;”语句之间:
如果您需要执行的唯一代码是 PowerShell,则可以使用类似以下内容的内容:
将所有不以“;@F”开头的行传输到 PowerShell。
编辑:我能够在单独的窗口中启动 PowerShell 并允许 cmd 退出:
请注意,设置“LF”变量后必须有 2 个空格,因为我们正在为多变的。
You can add ' ^' to continue the string that you are assigning to a variable. This creates the command as a single line, so you need to use ';' between statements:
If the only code you need to execute is PowerShell, you can use something like:
which pipes all lines not starting with ";@F" to PowerShell.
Edit: I was able to start PowerShell in a separate window and allow cmd to exit with this:
Note that there must be 2 spaces after setting the 'LF' variable since we are assigning a line feed to the variable.
使用
来自
powershell /?
的引用您可以通过简单地提供 Base64 编码的字符串来使用原本需要通过
-EncodedCommand
进行尴尬转义的命令。Use
Quoting from
powershell /?
You can use a command that would otherwise require awkward escaping via
-EncodedCommand
by simply supplying a Base64-encoded string.Joey 的方式是万无一失的,但是您也可以在您的情况下使用简单的多行命令
这里需要空行(就像 Rynant 的 LF 示例中一样)
这里是 长命令分为多行
The way of Joey is foolproof, but you could also use a simple multiline command in your case
The empty lines are necessary here (like in the LF sample of Rynant)
Here is an explanation of Long commands split over multiple lines
您可以使用
-Command -
使 ps 从标准输入读取命令。将命令放入文件中,然后调用You could use
-Command -
which causes ps to read it's commands from stdin. Put your commands in a file, and invoke