2017-01-31 7 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 

파워 쉘 콘솔 출력 :

%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) 몇 가지 일관성 덕분에 며칠 내 인생을 살릴 수있었습니다. –