将Powershell函数转换为表达式

问题描述:

我需要使用iex将脚本作为Expression执行。有没有办法将一个巨大的函数转换为表达式?据我所知,它应该是单行命令,命令用;分开。将Powershell函数转换为表达式

+1

Invoke-Expression接受一个字符串并将其作为代码执行?你想要做什么,你有一个例子吗?任何代码都可以显示为一行。不能使其可读性强,或是一个好主意。 – Matt

+0

我有一个巨大的功能,需要约2k线。我需要找到一种方法将其转换为可由iex执行的单行表达式。 –

+0

好的,但我不明白_why_?你只是在重复这个问题。为什么它必须是一条线。将函数保存在文件中并使用powershell.exe调用脚本? – Matt

有一个办法做到这一点与编码:

$string = {(Get-WindowsFeature).Where{$PSItem.Installed}}.ToString() 
$encodedcommand = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($string)) 
powershell.exe -EncodedCommand $encodedcommand 

可以编码一个函数,道也。

+0

我的脚本太大,不适合命令行,所以这个伎俩不会做这笔交易。 –