Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.
#DefineSubRoutine startMSIE(url) Browser = ObjectOpen("InternetExplorer.Application") Browser.addressbar = @FALSE Browser.statusbar = @FALSE Browser.menubar = @FALSE Browser.toolbar = @FALSE browser.visible = @TRUE browser.navigate(url) ; wait until page loads... While Browser.busy || Browser.readystate <> 4 TimeDelay(0.5) EndWhile ; setup the document object... browserDoc = Browser.Document all = browserdoc.all Return(browser) #EndSubRoutine #DefineFunction BuildHTMLInputTable(inputList) ; build an INPUT for each server... InputTable = StrCat(`<TABLE border="0" width="200">`, @CRLF) For xx = 1 To ItemCount(inputList, @TAB) ThisInput = CreateServerInput(ItemExtract(xx, inputList, @TAB)) InputTable = StrCat(InputTable, `<tr><td>`, ThisInput, `</td></tr>`, @CRLF) Next ; add an EXIT button... InputTable = StrCat(InputTable, `<tr><td><INPUT type="button" onclick="ServerSpan.innerText='EXIT'" value=" EXIT "></td></tr>`, @CRLF) InputTable = StrCat(InputTable, `</TABLE>`) Return(InputTable) #EndFunction #DefineFunction BuildHTMLDataTable(list, id) ; build a table for each server and place the ID as the CAPTION... DataTable = StrCat(`<TABLE class="frame" id="`, id, `" style="border-collapse: collapse" border="1" width="200">`, @CRLF) DataTable = StrCat(DataTable, `<caption>`, id, `</caption>`, @CRLF) DataTable = StrCat(DataTable, `<th>Share</th><th>Free Space</th>`, @CRLF) For xx = 2 To ItemCount(list, ",") ThisData = ItemExtract(xx, list, ",") ThisShare = ItemExtract(1, ThisData, "\") ThisSpace = ItemExtract(2, ThisData, "\") class = "" ; look only at MB entries and color code accordingly... If StrIndexNC(ThisSpace, " MB ", 1, @FWDSCAN) If NumbersOnly(ThisSpace) < 100 Then class = "yellow" If NumbersOnly(ThisSpace) < 20 Then class = "red" EndIf DataTable = StrCat(DataTable, `<tr><td align="center" class="`, class, `">`, ThisShare , `</td><td align="center" class="`, class, `">`, ThisSpace, `</td></tr>`, @CRLF) Next DataTable = StrCat(DataTable, `</TABLE>`) Return(DataTable) #EndFunction #DefineFunction CreateServerInput(ServerName) sinput = StrCat(`<INPUT type="button" onclick="ServerSpan.innerText='`, ServerName, `'" value="`, ServerName, `" >`) Return(sinput) #EndFunction #DefineFunction NumbersOnly(str) ; this won't work with decimals... Return(StrClean(str, "0123456789", "", @FALSE, 2)) #EndFunction serverfile = "c:\temp\Server Data.txt" ;gosub GenerateServerData GoSub BuildReport Exit :GenerateServerData ; generate Server data... letters = StrUpper("abcdefghijklmnopqrstuvwxyz") ServerData = "" ; build 20 fake servers... For xx = 1 To 20 ThisData = "" ServerName = StrCat("Server", xx) ThisData = StrCat(ThisData, ServerName, ",") ThisShare = "" ; next generate shares For yy = 1 To StrLen(letters) If Random(99)+1 > 55 ThisShare = StrCat(StrSub(letters, yy, 1), ":\ ") ShareSize = Random(699)+1 If Random(1) ; half are MB, the other half are GB... ThisShare = StrCat(ThisShare, ShareSize, " MB Free,") Else ThisShare = StrCat(ThisShare, ShareSize, " GB Free,") EndIf ThisData = StrCat(ThisData, ThisShare) EndIf Next ; get rid of the extra comma on the end... If StrSub(ThisData, StrLen(ThisData), 1) == "," Then ThisData = StrSub(ThisData, 1, StrLen(ThisData)-1) ServerData = StrCat(ServerData, ThisData, @CRLF) Next ; write the data to a file... FilePut(serverfile, ServerData) Message("Debug", "All Done") Return :BuildReport ; get the CSV data... sdata = FileGet(serverfile) sdata = StrReplace(sdata, @CRLF, @LF) ; first build a list of servers... serverList = "" For xx = 1 To ItemCount(sdata, @LF) ThisLine = ItemExtract(xx, sdata, @LF) servername = ItemExtract(1, ThisLine, ",") If StrTrim(servername) <> "" Then serverList = ItemInsert(servername, -1, serverList, @TAB) Next ; submit the list and get back a table of INPUTs with each server's name on it... InputTable = BuildHTMLInputTable(serverList) ; setup the list to hold each server's table data... MasterData = "" For xx = 1 To ItemCount(sdata, @LF) ThisLine = ItemExtract(xx, sdata, @LF) tableid = ItemExtract(1, ThisLine, ",") If StrTrim(tableid) <> "" Then MasterData = ItemInsert(BuildHTMLDataTable(ThisLine, tableid), -1, MasterData, @TAB) Next ; start the browser... br = startMSIE("about:blank") ; build a STYLE section... style = `<style> .yellow {background-color: yellow;} .red {background-color: red;} .hidden {display: none;} .frame {border: .25mm solid black}` style = StrCat(style, ` th {background-color: black; font-weight: bold; color: gold} caption {background-color: black; font-weight: bold; color: gold} </style>`) ; build a display table to hold the report displayTable = `<TABLE border="0"><tr><td id="ButtonCell"></td><td id="DataCell"></td></tr></TABLE>` displayTable = StrCat(displayTable, @CRLF, `<span id="ServerSpan" class="hidden"></span>`) ; write the style, table and set the title... browserdoc.writeln(style) browserdoc.writeln(displayTable) browserdoc.title = "Server Space Report" ; ref the left/right table cells BC = browserdoc.all("ButtonCell") ; place the buttons onscreen... BC.innerHTML = InputTable ; ref the data cell to display the server's table info... DC = browserdoc.all("DataCell") ; ref the hidden span, so we know which button the user clicked on... SS = browserdoc.all("ServerSpan") ; loop until the EXIT button is clicked... While @TRUE Yields(2000) If SS.innerText <> "" If SS.innerText == "EXIT" Then Break ; this strips the word "server" off the span's contents and leaves us ; with the list position of the server's table... s = NumbersOnly(SS.innerText) SS.innerText = "" ; display the table... DC.innerHTML = ItemExtract(s, MasterData, @TAB) EndIf EndWhile ; close up, go home... ObjectClose(DC) ObjectClose(SS) br.quit Exit
Server1,A:\ 216 GB Free,K:\ 381 MB Free,L:\ 436 GB Free,O:\ 358 GB Free,P:\ 58 MB Free,S:\ 496 MB Free,T:\ 11 MB Free,V:\ 492 GB Free,X:\ 333 GB Free,Y:\ 353 GB Free Server2,C:\ 94 MB Free,D:\ 254 MB Free,F:\ 219 MB Free,G:\ 138 MB Free,I:\ 684 MB Free,J:\ 444 GB Free,P:\ 457 MB Free,R:\ 588 MB Free,S:\ 466 GB Free,T:\ 23 GB Free,U:\ 483 MB Free,W:\ 3 GB Free,X:\ 652 GB Free,Z:\ 276 GB Free Server3,B:\ 145 GB Free,E:\ 395 GB Free,H:\ 140 MB Free,L:\ 140 MB Free,M:\ 307 GB Free,O:\ 139 GB Free,U:\ 159 MB Free,V:\ 452 MB Free,X:\ 128 MB Free,Y:\ 391 GB Free,Z:\ 31 MB Free Server4,A:\ 682 MB Free,C:\ 607 MB Free,E:\ 346 GB Free,L:\ 243 MB Free,P:\ 588 GB Free,R:\ 504 GB Free,V:\ 364 MB Free,W:\ 361 GB Free,X:\ 515 MB Free,Y:\ 651 GB Free Server5,B:\ 668 MB Free,E:\ 436 GB Free,K:\ 442 GB Free,M:\ 109 GB Free,N:\ 531 MB Free,O:\ 152 MB Free,P:\ 482 MB Free,S:\ 679 MB Free,V:\ 257 MB Free,W:\ 636 MB Free,Y:\ 103 GB Free Server6,B:\ 79 MB Free,F:\ 580 MB Free,I:\ 52 MB Free,L:\ 89 MB Free,O:\ 553 GB Free,Q:\ 577 MB Free,S:\ 580 MB Free,V:\ 650 MB Free,X:\ 46 MB Free,Z:\ 116 MB Free Server7,A:\ 327 GB Free,C:\ 118 MB Free,F:\ 321 GB Free,I:\ 540 GB Free,N:\ 373 GB Free,R:\ 285 MB Free,X:\ 571 GB Free,Z:\ 480 MB Free Server8,C:\ 376 GB Free,F:\ 4 GB Free,G:\ 527 GB Free,M:\ 377 GB Free,O:\ 286 MB Free,Q:\ 7 MB Free,S:\ 396 MB Free,U:\ 212 GB Free,V:\ 547 GB Free,Y:\ 282 MB Free,Z:\ 122 GB Free Server9,A:\ 138 MB Free,D:\ 539 MB Free,E:\ 254 GB Free,H:\ 449 GB Free,I:\ 384 MB Free,K:\ 326 GB Free,L:\ 353 GB Free,N:\ 68 MB Free,P:\ 17 GB Free,Q:\ 374 GB Free,R:\ 210 MB Free,U:\ 131 MB Free,W:\ 366 MB Free Server10,E:\ 481 MB Free,F:\ 622 MB Free,G:\ 96 GB Free,H:\ 157 GB Free,I:\ 203 GB Free,J:\ 354 GB Free,K:\ 18 GB Free,N:\ 22 MB Free,O:\ 138 MB Free,S:\ 503 GB Free,T:\ 120 MB Free,U:\ 277 MB Free,W:\ 398 GB Free,X:\ 665 GB Free,Z:\ 285 GB Free Server11,A:\ 303 MB Free,C:\ 374 MB Free,E:\ 224 MB Free,F:\ 111 MB Free,G:\ 523 MB Free,H:\ 37 GB Free,I:\ 74 MB Free,L:\ 477 GB Free,N:\ 618 GB Free,P:\ 291 GB Free,Q:\ 496 MB Free,S:\ 621 GB Free,U:\ 596 MB Free,Y:\ 71 GB Free Server12,C:\ 505 GB Free,F:\ 648 GB Free,H:\ 112 MB Free,K:\ 530 GB Free,M:\ 201 GB Free,O:\ 404 GB Free,P:\ 341 MB Free,Q:\ 92 GB Free,U:\ 192 GB Free,X:\ 554 MB Free,Y:\ 503 GB Free,Z:\ 639 GB Free Server13,C:\ 6 GB Free,H:\ 353 MB Free,I:\ 597 MB Free,J:\ 50 MB Free,K:\ 514 MB Free,M:\ 347 MB Free,O:\ 55 GB Free,Q:\ 73 GB Free,S:\ 279 GB Free,U:\ 548 GB Free,V:\ 601 MB Free,W:\ 302 GB Free,X:\ 551 MB Free,Y:\ 268 MB Free Server14,A:\ 612 MB Free,B:\ 642 GB Free,C:\ 344 MB Free,D:\ 420 GB Free,F:\ 43 GB Free,G:\ 172 MB Free,H:\ 545 GB Free,I:\ 615 GB Free,J:\ 3 MB Free,O:\ 100 MB Free,P:\ 552 MB Free,Q:\ 82 GB Free,R:\ 178 MB Free,T:\ 149 GB Free,U:\ 375 GB Free,V:\ 404 MB Free,W:\ 496 MB Free Server15,A:\ 199 GB Free,B:\ 560 GB Free,C:\ 327 MB Free,K:\ 646 MB Free,P:\ 34 MB Free,R:\ 629 MB Free,S:\ 485 GB Free,U:\ 38 MB Free,W:\ 363 MB Free,Y:\ 167 MB Free Server16,C:\ 605 MB Free,H:\ 451 MB Free,J:\ 213 GB Free,M:\ 256 GB Free,N:\ 340 GB Free,Q:\ 20 GB Free,R:\ 192 MB Free,U:\ 618 GB Free,Z:\ 464 GB Free Server17,A:\ 117 MB Free,B:\ 555 GB Free,E:\ 124 MB Free,G:\ 584 MB Free,H:\ 118 MB Free,J:\ 370 GB Free,N:\ 478 MB Free,R:\ 651 MB Free,U:\ 663 GB Free,V:\ 117 GB Free,Z:\ 72 GB Free Server18,A:\ 306 MB Free,B:\ 480 GB Free,D:\ 321 MB Free,F:\ 82 GB Free,H:\ 267 MB Free,J:\ 318 GB Free,L:\ 288 GB Free,O:\ 113 MB Free,P:\ 13 GB Free,R:\ 585 MB Free,V:\ 289 GB Free,Z:\ 534 GB Free Server19,C:\ 407 MB Free,D:\ 357 GB Free,E:\ 100 GB Free,H:\ 9 MB Free,L:\ 242 GB Free,M:\ 141 GB Free,N:\ 313 GB Free,O:\ 153 MB Free,R:\ 149 GB Free,T:\ 415 MB Free,U:\ 221 GB Free,W:\ 678 GB Free Server20,D:\ 542 MB Free,E:\ 478 MB Free,G:\ 228 GB Free,H:\ 560 MB Free,J:\ 450 MB Free,K:\ 444 GB Free,M:\ 195 MB Free,N:\ 124 GB Free,O:\ 615 GB Free,P:\ 216 MB Free,R:\ 563 GB Free,T:\ 489 GB Free,X:\ 274 MB Free,Y:\ 617 MB Free,Z:\ 183 GB Free
Article ID: W16642
File Created: 2005:04:28:08:28:38
Last Updated: 2005:04:28:08:28:38