Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Powershell函数转换为表达式_Powershell - Fatal编程技术网

将Powershell函数转换为表达式

将Powershell函数转换为表达式,powershell,Powershell,我需要使用iex将脚本作为表达式执行。有没有办法把一个巨大的函数转换成表达式?它应该是一个由分隔的命令行,据我所知。有一种方法可以通过编码来实现: $string = {(Get-WindowsFeature).Where{$PSItem.Installed}}.ToString() $encodedcommand = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($string)) powershell.exe -Enc

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

有一种方法可以通过编码来实现:

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

您也可以用这种方式对函数进行编码。

调用表达式接受字符串并将其作为代码执行?你到底想做什么?你有没有一个例子?任何代码都可以显示为一行。我有一个巨大的函数,大约需要2k行。我需要找到一种方法将其转换为一行表达式,可以由iex执行。好的,但我不明白为什么?你只是在重复这个问题。为什么必须是一行呢。将函数保存在文件中并使用powershell.exe调用脚本?我有vbs脚本,它有时会调用powershell脚本。我可以将脚本放到文件中并执行它,但我想无文件地执行它。问题就是这样产生的:)因此,将字符串保存在vbs中,并在运行时将其保存到文件中以供执行。您可以直接从cmd行运行它,但我担心它会太长并且失败,因为cmd有字符限制。另外,不现实,只需在PowerShell中运行整个过程。我的脚本太大,无法放入命令行,因此此技巧无法完成任务。