2016-11-15 5 views
-1

iexを使用してExpressionとしてスクリプトを実行する必要があります。巨大な関数を式に変換する方法はありますか?私は理解しているように、コマンドは;で区切られた1ライナーでなければなりません。Powershell関数を式に変換する

+1

Invoke-Expressionは文字列を受け取り、それをコードとして実行しますか?あなたは正確に何をしようとしていますか、あなたは模範を持っていますか?任意のコードを1行として表示することができます。読めるようにしたり、良い考えをしたりしないでください。 – Matt

+0

私は約2k行の巨大な機能を持っています。私はiexで実行できる1行の式に変換する方法を見つける必要があります。 –

+0

[OK]を、私は理解していない_why_?あなたはただ質問を繰り返すだけです。なぜそれは1つの線でなければならないのですか?関数をファイルに保存し、powershell.exeでスクリプトを呼び出しますか? – Matt

答えて

0

エンコーディングであることを行うための方法があります:

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

あなたはそのようにも機能をエンコードすることができます。

+0

スクリプトがコマンドラインに収まらないほど大きすぎるので、このトリックは対処しません。 –

関連する問題