2017-01-31 14 views
8

私はこの問題と少し混乱しています!私はより大きなスクリプトを構築しており、ISEで動作していましたが、PowerShellのコンソールでは動作しませんでした。私は異なる環境間で異なった動作をしているように思われる[System.Uri] :: EscapeDataString関数を追跡することができました。例えば、powershell console() '&! IDEのようにエスケープされている場所でエスケープされていません。Powershell IDEとPowershellコンソールの動作が異なるEscapeDataString

何か不足していますか?

私のテストコード:

[System.Uri]::EscapeDataString("/?:@%!$&'/*+,;=()") 

ISE出力:

%2F%3F%3A%40%25%21%24%26%27%2F%2A%2B%2C%3B%3D%28%29 

PowerShellのコンソール出力:

%2F%3F%3A%40%25!%24%26'%2F*%2B%2C%3B%3D() 

Screenshot

ありがとう!

+0

あなたはPowerShellのバージョンですか?両方のシェルをチェックして、ショートカットにスイッチが使用されていないことを確認してください。 _Possible_これはバグですが、確かめるにはバージョンが必要です。 – Matt

+0

Windows 10およびWindows 7のPowerShell 5で再現可能 – BenH

+0

@Matt 5.1.14393.693両方のコンソールで同じ – britcowboy

答えて

2

ここでは、source[System.UriParser].GetField('s_QuirksVersion', [Reflection.BindingFlags] 'Static, NonPublic').GetValue($null)の違いがあります。

回答がコミュニティウィキとしてマークされているため、質問に未回答の質問が表示されていました。

+0

これをPowerShellでV3に設定する方法はありますか? (またはISEのV2?)いくつかの一貫性は、私の人生の数日を節約してくれました。 –

関連する問題