5

How do I get weather results using cURL, assigning a variable to it for later use? Something like:

# This doesn't work and is only a reference for what I want:

set mytemperature= curl www.yahoo.com/(mycity)/weather.temperature
echo %mytemperature%

JW0914
  • 9,096

3 Answers3

6

enter image description here


To save descriptions and temperature in a variable from your .bat file, also removing characters ┬░ (hex: [0xB0 and 0xC2) from wttr.in output London: +13┬░C and getting back the degree sign [º]:

  • @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:

  • PowerShell: you can use the solution from @igor_chubin
    (curl http://wttr.in/riodejaneiro -UserAgent "curl" ).Content
    or
    powershell -nop -c "(curl http://wttr.in/riodejaneiro -UserAgent "curl" ).Content"

  • Batch File: when using whiteout, provide some location [curl http://wttr.in], else your current location will be assumed to display the data:
    @echo off && title <nul && title %~nx0 && mode 128,45
    

    powershell -nop -c "(curl http://wttr.in/riodejaneiro -UserAgent "curl" ).Content"


  • Cmd:
    set _temp=cmd /a /v /c "curl wttr.in/RioDeJaneiro?format=^%t --silent"
    

    %_temp%


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 there:
    curl wttr.in/*
    
JW0914
  • 9,096
Io-oI
  • 9,237
5

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

1

curl wttr.in/Mumbai

for knowing temperature for few day

just use the curl command and your city name and get weather report

this is weather report for city of MUMBAI:
Image of cmd for weather of Mumbai

ZygD
  • 2,577
Tarun
  • 11
  • 2