Yesterday, we reviewed a nice and useful service, wttr.in, which allows the user to fetch the weather forecast in Linux terminal. Today, we'll learn how to do the same in Windows PowerShell.
We will use an open source web service wttr.in to fetch the weather forecast. Wttr.in can be used not only to check the weather, but also for some other purposes. For example, you can see the current Moon phase.
PowerShell is an advanced form of command prompt. It is extended with a huge set of ready-to-use cmdlets and comes with the ability to use .NET framework/C# in various scenarios. See All ways to open PowerShell in Windows 10.
In PowerShell, there is a special alias "curl" for the built-in cmdlet Invoke-RestMethod, which can retrieve the URL contents from the PowerShell console. This will allow us to use commands I've provided in the Linux article almost without modification.
To get the weather forecast in PowerShell, you can use the following commands.
To get the current weather in PowerShell, type or copy-paste the following command:
(curl http://wttr.in/?Q0 -UserAgent "curl" ).Content
You can specify the desired location as follows:
(curl http://wttr.in/NewYork -UserAgent "curl" ).Content
The output will be as follows:
You can specify the country where you live when required. The syntax is as follows:
(curl http://wttr.in/"Madrid,Spain" -UserAgent "curl" ).Content
Double quotes are important to ensure that the location will be passed to the service, otherwise you will get an error in PowerShell.
The service supports a number of options. Open the following page to learn about them:
Alternatively, you can use this command in your terminal:
(curl http://wttr.in/:help -UserAgent "curl" ).Content
Here are some useful options.
(curl wttr.in/New-York?n -UserAgent "curl" ).Content
This will display the short version of the forecast which includes only Noon and Night.
(curl wttr.in/New-York?0 -UserAgent "curl" ).Content
This will show only the current weather in the specified location.
It is worth mentioning that the wttr.in service can show the forecast right in your web browser. Point your browser to the same location you use in PowerShell. See the following screenshot:
If you add ".png" to the location, the service will return a PNG image. You can embed it in your web page.
For example, open this link: http://wttr.in/New-York.png
When in PNG mode, you can pass parameters as follows:
The service is localized into several languages.
To change the forecast language, you can use the following syntax:
(curl wttr.in/Berlin?lang=de -UserAgent "curl" ).Content (curl wttr.in/Moscow?lang=ru -UserAgent "curl" ).Content
Alternatively, you can use subdomains as follows:
(curl de.wttr.in/Berlin -UserAgent "curl" ).Content (curl ru.wttr.in/Moscow -UserAgent "curl" ).Content
Supported languages are:
az bg ca cs cy da de el eo es fi fr hi hr hu is it ja ko mk ml nl nn pt pl ro ru sk sl sr sr-lat sv tr uk uz vi zh et hy jv ka kk ky lt lv sw th zu bs be
Wttr.in can be used to see the current Moon phase. Execute the following command:
(curl wttr.in/Moon -UserAgent "curl" ).Content
Note: All screenshots above were made in Windows 10 Creators Update. In previous Windows versions, there can be an issue with ANSI sequences in PowerShell. If you are running Windows 7 or Windows 8, please refer to the following page to get a workaround: How to enable wttr.in in a PowerShell console.