Проверка доступности uri адреса средствами powershell на подобие curl

А решение, как оказалось, достаточно простое:

powershell -nologo -noprofile "%{[Net.ServicePointManager]::SecurityProtocol = 'Tls12, Tls11, Tls, Ssl3'} ;(Invoke-WebRequest -UseBasicParsing -Uri <ULR>).StatusCode;exit [int]$Error[0].Exception.Status"

Результат считывается из значение свойства “Status” члена “Exception” в переменной $Error. Это помогает обработать ситуации типа такой

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

Status           Property   System.Net.WebExceptionStatus Status {get;}

, которое и даёт ответ, было соединение или нет.

Ну, вот, как‐то так. Почти полный аналог “curl”.

You are currently viewing Getting Started with PowerShell

Throughout this guide, we’ll explore the fundamentals of PowerShell and provide practical examples to help you grasp its concepts and unleash its potential in your daily workflows.

1. Opening PowerShell

1.1 Windows

  • Press Win + X, then select “Windows PowerShell” or “Windows PowerShell (Admin)”.

1.2 macOS

  • Open “Terminal” from the Applications folder, then type pwsh and press Enter.

1.3 Linux

  • Open your terminal, then type pwsh and press Enter.

2. Basic PowerShell Commands

2.1 Get-Help

The Get-Help command is used to get information about PowerShell commands.

Get-Help Get-Process

2.2 Get-Process

The Get-Process command retrieves a list of running processes.

Get-Process

2.3 Get-Service

The Get-Service command retrieves a list of installed services.

Get-Service

2.4 Get-ChildItem

The Get-ChildItem command lists files and directories in the current directory.

Get-ChildItem

2.5 Set-Location

The Set-Location command changes the current working directory.

Set-Location C:\Windows\System32

2.6 Clear-Host

The Clear-Host command clears the PowerShell console screen.

Clear-Host

3. Variables and Output

3.1 Variables

You can create variables in PowerShell using the $ symbol.

$name = "John"
$age = 30

3.2 Output

You can display the value of a variable using the Write-Output command.

Write-Output "Hello, $name! You are $age years old."

4. Scripts

4.1 Creating a Script

You can create PowerShell scripts with a .ps1 extension.

# ScriptName.ps1
$name = "John"
Write-Output "Hello, $name!"

4.2 Running a Script

./ScriptName.ps1

5. Control Structures

5.1 If Statement

The if statement executes code based on a condition.

$number = 10
if ($number -gt 5) {
    Write-Output "$number is greater than 5"
}

5.2 For Loop

for ($i = 1; $i -le 5; $i++) {
    Write-Output "Count: $i"
}

5.3 Foreach Loop

The foreach loop iterates through items in a collection.

$fruits = "Apple", "Banana", "Orange"
foreach ($fruit in $fruits) {
    Write-Output "Fruit: $fruit"
}

6. Working with Files

6.1 Reading a File

You can read the contents of a file using Get-Content.

Get-Content C:\path\to\file.txt

6.2 Writing to a File

You can write to a file using Set-Content.

Set-Content C:\path\to\newfile.txt "This is the content of the file."

6.3 Copying Files

The Copy-Item command is used to copy files.

Copy-Item C:\path\to\file.txt D:\backup\file.txt

7. Working with Services

7.1 Starting a Service

The Start-Service command starts a service.

Start-Service -Name "serviceName"

7.2 Stopping a Service

The Stop-Service command stops a service.

Stop-Service -Name "serviceName"

7.3 Restarting a Service

The Restart-Service command restarts a service.

Restart-Service -Name "serviceName"

8. Conclusion

  • Official PowerShell Documentation
  • PowerShell Community Resources

Вот команды bash, а вы в 80% описали отдельные утилиты, не связанные с bash

Команды bash
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
These shell commands are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.

A star (*) next to a name means that the command is disabled.

 job_spec [&]                                                history [-c] [-d offset] [n] or history -anrw [filename]>
 (( expression ))                                            if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMAN>
 . filename [arguments]                                      jobs [-lnprs] [jobspec ...] or jobs -x command [args]
 :                                                           kill [-s sigspec | -n signum | -sigspec] pid | jobspec .>
 [ arg... ]                                                  let arg [arg ...]
 [[ expression ]]                                            local [option] name[=value] ...
 alias [-p] [name[=value] ... ]                              logout [n]
 bg [job_spec ...]                                           mapfile [-d delim] [-n count] [-O origin] [-s count] [-t>
 bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u >  popd [-n] [+N | -N]
 break [n]                                                   printf [-v var] format [arguments]
 builtin [shell-builtin [arg ...]]                           pushd [-n] [+N | -N | dir]
 caller [expr]                                               pwd [-LP]
 case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esa>  read [-ers] [-a array] [-d delim] [-i text] [-n nchars] >
 cd [-L|[-P [-e]] [-@]] [dir]                                readarray [-d delim] [-n count] [-O origin] [-s count] [>
 command [-pVv] command [arg ...]                            readonly [-aAf] [name[=value] ...] or readonly -p
 compgen [-abcdefgjksuv] [-o option] [-A action] [-G globp>  return [n]
 complete [-abcdefgjksuv] [-pr] [-DEI] [-o option] [-A act>  select NAME [in WORDS ... ;] do COMMANDS; done
 compopt [-o|+o option] [-DEI] [name ...]                    set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
 continue [n]                                                shift [n]
 coproc [NAME] command [redirections]                        shopt [-pqsu] [-o] [optname ...]
 declare [-aAfFgilnrtux] [-p] [name[=value] ...]             source filename [arguments]
 dirs [-clpv] [+N] [-N]                                      suspend [-f]
 disown [-h] [-ar] [jobspec ... | pid ...]                   test [expr]
 echo [-neE] [arg ...]                                       time [-p] pipeline
 enable [-a] [-dnps] [-f filename] [name ...]                times
 eval [arg ...]                                              trap [-lp] [[arg] signal_spec ...]
 exec [-cl] [-a name] [command [arguments ...]] [redirecti>  true
 exit [n]                                                    type [-afptP] name [name ...]
 export [-fn] [name[=value] ...] or export -p                typeset [-aAfFgilnrtux] [-p] name[=value] ...
 false                                                       ulimit [-SHabcdefiklmnpqrstuvxPT] [limit]
 fc [-e ename] [-lnr] [first] [last] or fc -s [pat=rep] [c>  umask [-p] [-S] [mode]
 fg [job_spec]                                               unalias [-a] name [name ...]
 for NAME [in WORDS ... ] ; do COMMANDS; done                unset [-f] [-v] [-n] [name ...]
 for (( exp1; exp2; exp3 )); do COMMANDS; done               until COMMANDS; do COMMANDS; done
 function name { COMMANDS ; } or name () { COMMANDS ; }      variables - Names and meanings of some shell variables
 getopts optstring name [arg]                                wait [-fn] [id ...]
 hash [-lr] [-p pathname] [-dt] [name ...]                   while COMMANDS; do COMMANDS; done
 help [-dms] [pattern ...]                                   { COMMANDS ; }

:/>  Как открыть mdf файл в windows 7 и как открыть pap файл в windows 7

Всего голосов 13: ↑13 и ↓0

В хабе “разработка под Windows” я бы все-таки не ожидал видеть инструкцию по применению утилит из *nix – учитывая, что в Windows есть PowerShell.

Всего голосов 11: ↑10 и ↓1

Всего голосов 3: ↑2 и ↓1

PowerShell очень медленно работает.
Утилиты из СygWin делают то же в 3 раза быстрее.

Всего голосов 6: ↑4 и ↓2

(а) мне хватает скорости PowerShell
(б) я не хочу (а иногда – не могу) ставить cygwin

Всего голосов 7: ↑7 и ↓0

для Windows powershell отличный инструмент, единственное заметное неудобство – отличается набор команд в разных версиях , приходится при написании ориентироваться на 3 версию

Всего голосов 3: ↑1 и ↓2

мне хватает скорости PowerShell

Что-то народ не особо ратует за PowerShell. Не подскажете почему?

Проверка доступности uri адреса средствами powershell на подобие curl

Всего голосов 4: ↑2 и ↓2

Понятия не имею. Подозреваю, что зависит от выборки, на которой вы собирали данные.

Всего голосов 5: ↑4 и ↓1

если вызывать из повершелла гну утилиты, то может и медленно.
Но Powershell не под них оптимизирован. Сам по себе он вполне себе быстр.

Всего голосов 2: ↑1 и ↓1

Наверное этот текст обидит чувства Windows пользователей, так как тут по сути предлагается использовать Unix(овые) утилиты в OS Windows.

Многие пользователи Windows, которых я знаю, религиозно презирают Linux и всё, что с этим связано.

Всего голосов 4: ↑2 и ↓2

Я вот пользуюсь и Windows, и Linux (точнее, его контейнерными производными и изредка WSL). Вопрос не в презрении, вопрос в выборе подходящего инструмента.

Но возможно не стоит публиковать текст, если вы серьезно думаете, что он обидит чувства какой-то значимой группы читателей.

Всего голосов 2: ↑2 и ↓0

Многие пользователи Windows, которых я знаю, религиозно презирают Linux и всё, что с этим связано.

в 99% так делают технически ограниченные люди

Всего голосов 2: ↑2 и ↓0

Комментарий пока не оценивали

Наверное этот текст обидит чувства Windows пользователей, так как тут по сути предлагается использовать Unix(овые) утилиты в OS Windows.

Не пользователей, а ламеров.
Для сведения, OS Windows сама когда-то поддерживала POSIX во времена windows NT и windows 2000, а сейчас внедрила еще более полноценный WSL

cygwin и mingw были доступны всем, кто хотел.
Презирать религиозно – изначально не очень подход для технического человека.

Всего голосов 1: ↑1 и ↓0

В хабе “разработка под Windows” я бы все-таки не ожидал видеть инструкцию по применению утилит из *nix – учитывая, что в Windows есть PowerShell.

Вы можете для каждой команды из этой заметки привести команду из PowerShell, которая делает ту же работу?

Комментарий пока не оценивали

Наверное, могу, но не хочу тратить на это свое время.

Всего голосов 3: ↑3 и ↓0

Наверное, могу, но не хочу тратить на это свое время.

Спасибо, Вы только что доказали нам всем бессилие PowerShell!

:/>  Cmd против PowerShell

Всего голосов 3: ↑0 и ↓3

Эээ, нет, я ничего вам не доказал.

Всего голосов 2: ↑1 и ↓1

Всего голосов 3: ↑0 и ↓3

Извините, мне кажется, вас несет.

Всего голосов 2: ↑2 и ↓0

du -lhs `ls`
оч помогает искать место на чистой системе, статья должна быть докторская конечно.
cygwin в windows очень помогает

Всего голосов 1: ↑1 и ↓0

Полезные Утилиты Командной Строки Bash

Все команды bash по своему полезны, да.
И утилиты из coreutils тоже, даа..

Всего голосов 2: ↑2 и ↓0

Есть ошибки. И заголовок неточный.

Всего голосов 2: ↑1 и ↓1

Не нужно писать статью, если вы просто решили поделиться полезными командами из своего персонального читщита, но не владеете материалом. Тем более что подобных базовых примеров много не только в инете но и на Хабре.

Всего голосов 14: ↑12 и ↓2

Как можно путать баш и шелл, если bash и есть shell (один из многих)?

Всего голосов 6: ↑0 и ↓6

Как можно путать баш и шелл, если bash и есть shell (один из многих)?

“консоль гит и консоль гит-баш”.

Git for Windows создаёт ярлык и для Git Bash, и для Git CMD. Они оба откроют консоль, но очень разную.

Всего голосов 6: ↑6 и ↓0

А так, что есть оригинальный sh (который и есть shell), и есть множество потомков-наследников: bash, dash, fish, zsh, и так далее.

Ну и я часто получал вопрос вида – “What shell do you prefer ?” И всегда было понятно о чем речь, при этом я никогда не душнил типа – не shell, а linux command shell )))

Из этой же серии – “Какой линукс ты используешь ?” Формально вопрос не совсем корректный, но все все понимают

А еще есть переменная окружения SHELL

Всего голосов 1: ↑1 и ↓0

И всегда было понятно о чем речь

но консоль гит и линукс шелл это настолько разные вещи, что в данном случае следует уточнять, когда автор статьи утверждает про консоль гит (а не гит-баш).

Переменная окружения SHELL в данном случае не про то вообще. Мы говорим про разницу в терминах между shell и git.
Ведь cmd.exe тоже shell. И explorer.exe тоже shell.

Всего голосов 1: ↑1 и ↓0

А так, что есть оригинальный sh (который и есть shell), и есть множество потомков-наследников:

Спасибо, конечно, но на 4-м десятке лет работы с Unix я это знаю чуть более, чем хорошо. А теперь попробуйте рассказать мне, чем будут отличаться способы запуска и результаты исполнения любых из приведённых автором команд?

Видите ли, “bourne again shell” или “z shell” не перестали быть shell’ами из-за своих названий. Более того, все перечисленные вами shell’ы — одного поля ягоды, все выросли из bourne shell. И автор статьи не привел ни одного примера откровенного “башизма”, все его примеры будут одинаково работать во всех bourne-shell-наследованных шеллах, поэтому задам вопрос ещё раз — как можно путать shell и shell? А ещё лучше — покажите, где именно автор этой статьи (да, убогой, тут даже спорить не о чем) “путает баш и шелл” (в чём его обвинил автор изначального комментария ветки)?

Git for Windows создаёт ярлык и для Git Bash, и для Git CMD. Они оба откроют консоль, но очень разную.

Прежде, чем писать такое, следовало бы хоть минимально исследовать вопрос.

До установки Windows Terminal (в составе которого есть Open Console), в Windows была и есть одна единственная “консоль” — ранее conemu.exe, ныне conhost.exe. Я не просто так беру в кавычки, поскольку функционально это никакая не консоль, а весьма убогий эмулятор терминала, который способен лишь рендерить символы да интерпретировать довольно скромный набор управляющих последовательностей. От него, собственно, большего и не требуется. И какой бы “ярлык” Git for Windows ты ни выбрал — хоть Git bash, хоть Git CMD — та самая пресловутая “консоль” у этих окошек будет одна и та же. А вот что в них будет действительно “очень разным”, так это интерпретатор команд, взаимодействующий с пользователем. Так называемый шелл, ага. Только в одном случае он будет mingw-сборкой GNU bash, а в другом — убогий родной виндовый cmd.exe. Но “консоль” — та же самая, независимо от выбора “ярлыка”. Да, и на работу собственно Git это не влияет примерно никак.

:/>  Проверка и восстановление жесткого диска программой Victoria |

Но мой вопрос — чем же всё таки отличаются “консоль гит” (и что это вообще такое?) и “консоль гит-баш” — ответа я так и не получил. Но я, признаться, не особо и претендую.

Всего голосов 3: ↑0 и ↓3

Установите гит для винды.
Запустите git-bash.exe и git-cmd.exe
Выполните команду help в каждой из них

Скажите – вы не видите разницы?

До установки Windows Terminal (в составе которого есть Open Console), в Windows была и есть одна единственная “консоль” — ранее conemu.exe, ныне conhost.exe

С каких пор conemu (conemu.github.io опенсорс проект) внезапно превратился в ms conhost.exe?

Как и автор, вы таки путаете термины консоль и терминал.

Консоль это консоль управления.
Поэтому ярлыки, которые ведут к git-bash и git-cmd отличаются тем, что они ведут к разным консолям управления. Ввтор статьи в этом не разбирается, называя git-cmd консолью гита. В этом и смысл, что git-cmd не относится к linux shell/bash никак.

Еще неопытных пользователей может сильно смущать что в PATH в обоих случаях попадают gnu утилиты, которые могут продолжать работать в обеих консолях. И те, кто не понимает разницы между linux shell и gnu tools тоже могут запутаться.

Всего голосов 2: ↑2 и ↓0

Я всегда ставлю модуль Posh-Git и с ним замечательно работается в git прямо из обычного PowerShell без всяких git-bash(cmd)

Всего голосов 1: ↑1 и ↓0

С гит и так работается из powershell. Posh-Git просто добавляет удобства автокомплитом и форматированием.

Но под капотом гит все равно юзает gnu утилиты именно тем способом, который принят в linux shell, а не в повершелле

Всего голосов 1: ↑1 и ↓0

Очень очень плохая статья.

Тем не менее народ себе в закладки статью-то понадобавлял.

Проверка доступности uri адреса средствами powershell на подобие curl

Комментарий пока не оценивали

А я не душнила. Сохраню в закладках и буду пользоваться по необходимости. Если это работает, то мне не важно, как это называется. Спасибо, автор!

Всего голосов 5: ↑2 и ↓3

Раньше был такой шутливый вопрос: чем отличается чайник и ламер?

Всего голосов 3: ↑2 и ↓1

Уважаемый, а хотите я анекдот про теоретиков и практиков расскажу?

Всего голосов 1: ↑1 и ↓0

Таким практикам, как автор статьи, я регулярно помогаю на тостере.

Всего голосов 5: ↑3 и ↓2

Команды Bash можно с легкость отрабатывать на Windows, если установить GIT и открыть консоль GIT.

То, что при установке git, устанавливается ещё и МинГВ, никак не оправдывает.

С таким же успехом можно было сказать, что для работы в Юникс-образной командной строке установите ПО ” Ёклмн”, в состав которого случайно входит МинГВ. ))

Всего голосов 2: ↑2 и ↓0

Я пользуюсь WSL если мне нужно сделать что-то непосредственно на моем компе.

Я бы еще добавил одну из самых часто используемых команд:

Ну и возможны вариации с фильтрами, сортировками и уникальными значениями.

Всего голосов 1: ↑1 и ↓0

netstat deprecated. Нужно отвыкать.

Всего голосов 1: ↑1 и ↓0

Ну, как бы не depecated, а obsoleted. И только в пингвиниксе. У остальных живёт и развивается.

Всего голосов 1: ↑1 и ↓0

Это команда приведена только для примера, что через консоль можно делать поиск поверх предыдущего поиска. Так называемый многоступенчатый поиск. Встроенному поиску из-под GUI-IDE такое даже и не снилось.

Всего голосов 1: ↑1 и ↓0

Если говорить метафорично, то утилиты Unix – это как химическая посуда (пробирки, колбы, мензурки, воронки, фильтры, капельницы, часовые стекла, стеклянные палочки), только применительно к данным (числам и тексту). Видимо авторы UNIX в 196х-197х были серьезно вдохновлены химией при разработке компьютерных консольных утилит. Согласитесь, что ну невозможно не заметить этих аналогий между UNIX утилитами и химической посудой.

Проверка доступности uri адреса средствами powershell на подобие curl

Всего голосов 3: ↑0 и ↓3

Плохая аналогия подобна котенку с дверцей.

Всего голосов 3: ↑2 и ↓1

Оставьте комментарий