How to get weather via cmd in Windows 8.1 using cURL?
To save descriptions and temperature in variable from your bat file, also removing these two characters ┬░
(in hex [0xB0 and 0xC2
) from wttr.in output London: +13┬░C
and also get back the degree sign º
in you var:
@echo off
cd /d "%~dp0" && setlocal EnableDelayedExpansion
>nul chcp 437 && set /p "_city=Please, enter some location, city, an attraction: "
for /f "delims= " %%d in ('forFiles /p "." /m "%~nx0" /c "cmd /c echo(0xF8"')do set "_o=%%~d"
for /f tokens^=* %%i in ('^<con: curl https://wttr.in/%_city: =+%^?format^=%%l:+%%t\n -s
')do for /f %%T in ('^<con: cmd /u /c "echo\%%~i"^<nul^|find/v "%_o%"^|findstr /v ^,"
')do set "_dt=!_dt!%%~T"
set "_description_temperature=!_dt::=: !" && call echo\!_description_temperature:+=!!_o!C
timeout -1 & endlocal & goto :eof
- Outputs:
London: +13°C
rem :: char hex code
rem :: ░ == 0xB0 // removed in loop
rem :: ┬ == 0xC2 // removed in loop
rem :: ° == 0xF8 // set _description_temperature=!_dt::=: !!_o!
Old//
- In PowerShell:
You can use PowerShell solution from @igor_chubin
(curl http://wttr.in/riodejaneiro -UserAgent "curl" ).Content
- In command line :
powershell -nop -c "(curl http://wttr.in/riodejaneiro -UserAgent "curl" ).Content"
- In batch file:
@echo off && title <nul && title %~nx0 && mode 128,45
powershell -nop -c "(curl http://wttr.in/riodejaneiro -UserAgent "curl" ).Content"
- In Windows with
curl
:
curl http://wttr.in/riodejaneiro
Obs.: When using whiteout provide some location (curl http://wttr.in
), your current location will be assumed to display the data. ...
- You also can use the command line:
set _temp=cmd /a /v /c "curl wttr.in/RioDeJaneiro?format=^%t --silent"
%_temp%
You can also define outputs:
> curl wttr.in/London?format=%l:+%t\n
London: +13°C
- To specify your own custom output format, use the special %-notation:
c Weather condition,
C Weather condition textual name,
h Humidity,
t Temperature (Actual),
f Temperature (Feels Like),
w Wind,
l Location,
m Moonphase ,
M Moonday,
p precipitation (mm),
P pressure (hPa),
D Dawn*,
S Sunrise*,
z Zenith*,
s Sunset*,
d Dusk*.
(*times are shown in the local timezone)
$ curl wttr.in/London?format=3
London: ⛅️ +7⁰C
$ curl wttr.in/London?format="%l:+%c+%t\n"
London: ⛅️ +7⁰C
If you want to know the name of one of the coldest permanently inhabited locales on the planet and get the weather in there:
curl wttr.in/*
Get the temperature into a variable:
@echo off
chcp 1252 > nul
::Put your city here:
set City=Rio de Janeiro
set City_=%City: =-%
for /f "Delims=" %%a in ('curl --silent wttr.in/%City_%?format^=%%t') do set "CTemperature=%%a"
set CTemperature=%CTemperature:+=%
set CTemperature=%CTemperature:~0,-3%
echo The current temperature in %City% is %CTemperature% º Celcios
echo.
pause
Get temperature and weather description into variables:
@echo off
chcp 1252 > nul
::Put your city here:
set City=Rio de Janeiro
set City_=%City: =-%
for /f "Delims=" %%a in ('curl --silent wttr.in/%City_%?format^=%%t') do set "CTemperature=%%a"
set CTemperature=%CTemperature:+=%
set CTemperature=%CTemperature:~0,-3%
for /f "skip=1 tokens=4*" %%a in ('curl --silent wttr.in/%City_%?0') do set "Description=%%a %%b"& goto :Next
:Next
echo.
echo The current temperature in %City% is %CTemperature% º Celcios "%Description%"
echo.
pause