В одном из моих сценариев powershell - до запуска программы Java - я повторяю версию используемого java. Код PS выглядит совершенно безвредным, например:
...
Write-Output "Java version:"
Write-Output "-------------"
java -version
...
Приведенный выше фрагмент кода отлично работает, когда я выполняю его в обычном окне powershell или как часть сценария запуска. Результат такой, как и ожидалось:
Java version:
-------------
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
Но когда я выполняю то же самое внутри PowerShell ISE (который я обычно люблю использовать, поскольку он часто весьма полезен и удобен при разработке и отладке сценариев), я получаю:
Java version:
-------------
java : java version "1.8.0_202"
At D:\Projects\gwtp-demo\mms-specifics\etc\powershell\define_gwtp-demo_profile.ps1:50 char:1
+ java -version
+ ~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (java version "1.8.0_202":String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
Что здесь не так? Почему я получаю этот дополнительный PS gibberi sh здесь? Кажется, что PS (или ISE?) Пытается каким-то образом интерпретировать этот вывод (что, конечно, НЕ то, что я хочу или ожидаю. Как бы я назвал это «правильно» (в терминах PS), чтобы избежать такого дополнительного вывода