powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'};(Invoke-WebRequest -Uri www.googla.com -UseBasicParsing).StatusCode;exit [int]$Error[0].Exception.Status"
Invoke-WebRequest : Невозможно разрешить удаленное имя: 'www.googla.com'
строка:1 знак:77
+ %{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'};(Invo ...
+ ~
~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
echo %errorlevel%
1
NameResolutionFailure 1 The name resolver service could not resolve the host name.
powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'};Invoke-WebRequest -Uri https://www.cisco.com -UseBasicParsing | select-object -expandproperty statuscode;exit [int]$Error[0].Exception.Response.StatusCode"
echo %ERRORLEVEL%
0
powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;Invoke-WebRequest -Uri http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32 -UseBasicParsing | select-object -expandproperty statuscode;exit [int]$Error[0].Exception.Response.StatusCode"
echo %ERRORLEVEL%
502
powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;Invoke-WebRequest -Uri http://cle.linux.org.tw/xcin -UseBasicParsing | select-object -expandproperty statuscode;exit [int]$Error[0].Exception.Response.StatusCode"
Invoke-WebRequest : Невозможно разрешить удаленное имя: 'cle.linux.org.tw'
строка:1 знак:77
+ %{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;Invo ...
+ ~
~~~
+ CategoryInfo: InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
echo %ERRORLEVEL%
0
powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;exit Invoke-WebRequest -Uri https://www.cisco.com -UseBasicParsing | select-object -expandproperty statuscode" 2>&1
stderr
echo %ERRORLEVEL%
200
powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;exit Invoke-WebRequest -Uri http://directory.google.com/Top/Computers/Software/Operating_Systems/Unix/Win32 -UseBasicParsing | select-object -expandproperty statuscode" 2>&1
Invoke-WebRequest : 502. That’s an error. The server encountered a temporary error and could not complete your request.Please try again in 30 seconds. That’s all we know.
строка:1 знак:82
+ %{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;exit ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
d:\Programs\Curl\bin>echo %ERRORLEVEL%
1
502
call system(s:command .. shellescape(a:url))
return printf("%s %d", a:url, v:shell_error)
system()
— функция, получающая из командной оболочки возвращаемое значение в виде строки;s:command
— переменная, содержащая исполняемую команду; shellescape()
— функция, экранирующая передаваемые в команду данные, приемлемым для командной оболочки способом; v:shell_error
— содержит код возврата, полученный от исполняемой команды.s:commadn
содержит такую команду curl --silent --fail --output nul --head
.200
, 503
и т. п. результата обращения Invoke-WebRequest по указанному URL. Этот код желательно очень чтобы был в stderr.Select-Object
. PS C:\Users\Admin> (Invoke-WebRequest -Uri https://jigsaw.w3.org/css-validator).StatusCode
200
PS C:\Users\Admin> (Invoke-WebRequest -Uri ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz ).StatusCode
Invoke-WebRequest : Невозможно соединиться с удаленным сервером
строка:1 знак:2
+ (Invoke-WebRequest -Uri ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.FtpWebRequest:FtpWebRequest) [Invoke-WebRequest], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
https://jigsaw.w3.org/css-validator/ 0
ftp://ftp.ilog.fr/pub/Users/haible/gnu/linebreak-0.1.tar.gz 28
28 Operation timeout. The specified time-out period was reached according to the conditions
, но сейчас это не принципиально. Кстати, переменная $PSVersionTable появилась именно в v2, поэтому проверка типа IF $(psvr) <= 2 вам вообще недоступна, в принципе :)
Спасибо за Вашу помощь и предложенное решение! Почти всё отработало так, как надо.
Оформите, пожалуйста, ответ, чтобы можно было пометить его как решение.
Почему‐то все комментарии были удалены... Ваш рабочий вариант был такой: