| 
          @if (@CodeSection == @Batch) @then | 
        
        
           | 
          @echo off & setlocal enabledelayedexpansion | 
        
        
           | 
          
 | 
        
        
           | 
          :: :: CUSTOMIZING AREA START :: :: | 
        
        
           | 
          
 | 
        
        
           | 
          :: Remote Dashboard On/Off (1=enabled; 0=disabled) | 
        
        
           | 
          set remoteDashboardActive=1 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Remote Dashboard Name (be unique) | 
        
        
           | 
          set remoteDashboardName=my-test-rig-123456789 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Refresh Interval in Seconds | 
        
        
           | 
          set refreshInterval=30 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Windows styling | 
        
        
           | 
          mode con cols=70 lines=13 | 
        
        
           | 
          title NVIDIA GPUs Monitor + Remote Dashboard | 
        
        
           | 
          color 0A | 
        
        
           | 
          
 | 
        
        
           | 
          :: :: CUSTOMIZING AREA END :: :: | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :: GPU metrics | 
        
        
           | 
          set metrics[0]=clocks.gr | 
        
        
           | 
          set metrics[1]=power.draw | 
        
        
           | 
          set metrics[2]=temperature.gpu | 
        
        
           | 
          set metrics[3]=utilization.gpu | 
        
        
           | 
          
 | 
        
        
           | 
          :: GPU metrics units | 
        
        
           | 
          set units[clocks.gr]=MHz | 
        
        
           | 
          set units[power.draw]=W | 
        
        
           | 
          set units[temperature.gpu]=C | 
        
        
           | 
          set units[utilization.gpu]=%% | 
        
        
           | 
          
 | 
        
        
           | 
          :: Headline columns | 
        
        
           | 
          set headlines[clocks.gr]=Overclock | 
        
        
           | 
          set headlines[power.draw]=Power | 
        
        
           | 
          set headlines[temperature.gpu]=Temp | 
        
        
           | 
          set headlines[utilization.gpu]=Load | 
        
        
           | 
          
 | 
        
        
           | 
          :: GPU metrics units | 
        
        
           | 
          set totals[clocks.gr]=0 | 
        
        
           | 
          set totals[power.draw]=0 | 
        
        
           | 
          set totals[temperature.gpu]=0 | 
        
        
           | 
          set totals[utilization.gpu]=0 | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Set app path | 
        
        
           | 
          PATH=%PATH%;"%PROGRAMFILES%\NVIDIA Corporation\NVSMI\" | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Get GPU count | 
        
        
           | 
          for /f %%a in ('nvidia-smi --query-gpu^=count --format^=csv,noheader') do @set /a count=%%a | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Skip if no GPUs | 
        
        
           | 
          if %count% EQU 0 goto BYE_BYE | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Define and set lines count | 
        
        
           | 
          set /a lines=%count%+11 | 
        
        
           | 
          mode con cols=70 lines=%lines% | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :MAIN | 
        
        
           | 
          
 | 
        
        
           | 
            @cls | 
        
        
           | 
          
 | 
        
        
           | 
            setlocal | 
        
        
           | 
          
 | 
        
        
           | 
            call :SHOW_HEADER | 
        
        
           | 
          
 | 
        
        
           | 
            call :SHOW_GPUS | 
        
        
           | 
          
 | 
        
        
           | 
            call :SHOW_AVG | 
        
        
           | 
          
 | 
        
        
           | 
            call :SHOW_DWEET_URL | 
        
        
           | 
          
 | 
        
        
           | 
            endlocal | 
        
        
           | 
          
 | 
        
        
           | 
            timeout /t %refreshInterval% >nul | 
        
        
           | 
          GOTO :MAiN | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :SHOW_HEADER | 
        
        
           | 
          
 | 
        
        
           | 
            echo | set /p="GPUID " | 
        
        
           | 
          
 | 
        
        
           | 
            for /f "tokens=2 delims==" %%y in ('set headlines[') do echo | set /p="| %%y " | 
        
        
           | 
          
 | 
        
        
           | 
            echo. | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :SHOW_GPUS | 
        
        
           | 
          
 | 
        
        
           | 
            for /l %%X in (1,1,%count%) do call :LOOP_GPUS %%X | 
        
        
           | 
          
 | 
        
        
           | 
            echo. | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :LOOP_GPUS | 
        
        
           | 
          
 | 
        
        
           | 
            set json= | 
        
        
           | 
            set /a index=%1-1 | 
        
        
           | 
          
 | 
        
        
           | 
            echo. & echo | set /p="%index%     " | 
        
        
           | 
          
 | 
        
        
           | 
            for /f "tokens=2 delims==" %%s in ('set metrics[') do call :LOOP_GPU_METRICS %%s | 
        
        
           | 
          
 | 
        
        
           | 
            call :SEND_DWEET | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :LOOP_GPU_METRICS | 
        
        
           | 
          
 | 
        
        
           | 
            set metric=%1 | 
        
        
           | 
            set unit=!units[%metric%]! | 
        
        
           | 
            set headline=!headlines[%metric%]! | 
        
        
           | 
          
 | 
        
        
           | 
            for /f "tokens=1 delims=. " %%b in ('nvidia-smi -i %index% --query-gpu^=%metric% --format^=csv,noheader,nounits') do @set /a result=%%b | 
        
        
           | 
          
 | 
        
        
           | 
            set /a totals[%metric%]=!totals[%metric%]!+%result% | 
        
        
           | 
            set json=%json%'%headline%':'%result%', | 
        
        
           | 
          
 | 
        
        
           | 
            echo | set /p="| %result% %unit% " | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :SHOW_AVG | 
        
        
           | 
          
 | 
        
        
           | 
            for /L %%A in (1,1,42) do <nul set/p =- | 
        
        
           | 
          
 | 
        
        
           | 
            echo. & echo | set /p="AVG    " | 
        
        
           | 
          
 | 
        
        
           | 
            for /f "tokens=2 delims==" %%i in ('set metrics[') do call :LOOP_AVG_METRICS %%i | 
        
        
           | 
          
 | 
        
        
           | 
            echo. | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :LOOP_AVG_METRICS | 
        
        
           | 
          
 | 
        
        
           | 
            set metric=%1 | 
        
        
           | 
            set unit=!units[%metric%]! | 
        
        
           | 
            set /a total=!totals[%metric%]!/%count% | 
        
        
           | 
          
 | 
        
        
           | 
            echo | set /p="| %total% %unit% " | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :SEND_DWEET | 
        
        
           | 
          
 | 
        
        
           | 
            if %remoteDashboardActive% EQU 0 GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
            set thing=%remoteDashboardName% | 
        
        
           | 
            set json={%json:~0,-1%} | 
        
        
           | 
          
 | 
        
        
           | 
            cscript /nologo /e:jscript "%~f0" "%thing%" "%json%" "%index%" | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :SHOW_DWEET_URL | 
        
        
           | 
          
 | 
        
        
           | 
            if %remoteDashboardActive% EQU 0 GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
            echo. && echo Remote Dashboard URLs: | 
        
        
           | 
            echo https://dweet.io/dweet/for/%remoteDashboardName%-GPUID | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          :: Bye, bye | 
        
        
           | 
          :BYE_BYE | 
        
        
           | 
          
 | 
        
        
           | 
            echo No GPUs available | 
        
        
           | 
            pause | 
        
        
           | 
          
 | 
        
        
           | 
          GOTO :EOF | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          endlocal | 
        
        
           | 
          @end | 
        
        
           | 
          
 | 
        
        
           | 
          
 | 
        
        
           | 
          // Jscript stuff | 
        
        
           | 
          if ( WScript.Arguments.length === 3 ) { | 
        
        
           | 
            var x = WSH.CreateObject( "MSXML2.ServerXMLHTTP" ); | 
        
        
           | 
          
 | 
        
        
           | 
            var thing = WScript.Arguments.Item(0); | 
        
        
           | 
            var json = WScript.Arguments.Item(1); | 
        
        
           | 
            var index = WScript.Arguments.Item(2); | 
        
        
           | 
            var url = 'https://dweet.io/dweet/for/' + thing + '-' + index | 
        
        
           | 
          
 | 
        
        
           | 
            json = json.split(" ").join(''); | 
        
        
           | 
            json = json.split("'").join('"'); | 
        
        
           | 
          
 | 
        
        
           | 
            x.open( "POST", url, false ); | 
        
        
           | 
            x.setRequestHeader( "Content-type", "application/json" ); | 
        
        
           | 
            x.send( json ); | 
        
        
           | 
          
 | 
        
        
           | 
            while ( x.readyState != 4 ) WSH.Sleep( 50 ); | 
        
        
           | 
          } | 
        
        
           | 
          
 | 
        
        
           | 
          WScript.Quit(); | 
        
  
Content shows empty bracket in the dweet dashboard