Page 1 of 1

Re: Take webpage input to generate and run a batch file...

Posted: 14 Jun 2013 13:39
by zpimp
you could make a menu with choice/errorlevel and subroutines to run what they select
but its a crapload of code to write

enter the number of the printer you want to install
1) win xp - HR - hp 3450
...
44) win 7 - sales - canon mp3

would be easier to make it in jscript assuming your using internet explorer on your intranet, so it can run exe's

Re: Take webpage input to generate and run a batch file...

Posted: 02 Jul 2013 17:36
by penpen
It's not clear if you would accept a batch file with a menue, but i've just found an old batch, that can easily be adjusted, to create a printer menu:

Code: Select all

:programEntryPoint
   @echo off
   setlocal enableDelayedExpansion

   call :newMenu MENU
   set "MENU.TITLE=Please select a printer to install, or quit."
   call :addMenuItem MENU "win xp - HR - hp 3450" "echo:install command 1"
   :: more printers...
   call :addMenuItem MENU "win 7 - sales - canon mp3" "echo:install command n"

   call :showMenu MENU

   endlocal
   goto:eof

:newMenu
::   %1 menu name
::
   set "%1=class Menu"
   set "%1.LENGTH=0"
   set "%1.TITLE=Menu:"
   set "%1.EMPTY=No menuitems available."
   set "%1.CHOOSE=Please choose: "
   set "%1.QUOTES=Double quotes are not allowed."
   set "%1.CHOICE=The choosen input is not available."
   set "%1.EXECUTE=Execute:"
   goto:eof

:addMenuItem
::   %1 menu name
::   %2 menu entry encapsulated in doublequotes
::   %3 executeable encapsulated in doublequotes
::
   set /a "%1.LENGTH+=1"
   set "%1.ITEM[!%1.LENGTH!].NAME=%~2"
   set "%1.ITEM[!%1.LENGTH!].ACTION=%~3"
   goto:eof

:showMenu
::   %1 menu name to that holds the actual menue

   setlocal enableDelayedExpansion
   set "INPUT="
   set "ITEM.NAME="
   set "ITEM.ACTION="
   set "INFO_MESSAGE="
:printMenu
   cls
   echo:!%1.TITLE!
   if !%1.LENGTH! == 0 echo:!%1.EMPTY!
   for /l %%a in (1,1,!%1.LENGTH!) do echo:%%a^) !%1.ITEM[%%a].NAME!
   echo:Q/q^) to quit.
   if defined ITEM.NAME (
      echo:
      echo:Title:  %ITEM.NAME%
      echo:Action: %ITEM.ACTION%
      echo:!INFO_MESSAGE!%
      %ITEM.ACTION%
      set "ITEM.NAME="
      set "ITEM.ACTION="
   ) else if defined INFO_MESSAGE (
      echo:
      echo:Last input: "%INPUT%"
      echo:!INFO_MESSAGE!%
   )
   echo:

   set "INPUT="
   set /p "INPUT=!%1.CHOOSE!"
   if not defined INPUT (set "INFO_MESSAGE=!%1.CHOICE!" & goto:printMenu)

   set CHECK_QUOTES=!INPUT:%INPUT:"=%=!
   if defined CHECK_QUOTES (set "INFO_MESSAGE=!%1.QUOTES!" & goto:printMenu)

   if "Q" == "%INPUT%" goto:exitMenu
   if "q" == "%INPUT%" goto:exitMenu

   set "INFO_MESSAGE=!%1.CHOICE!"

   for /l %%a in (1,1,!%1.LENGTH!) do if "%%a" == "%INPUT%" (
      set "ITEM.NAME=!%1.ITEM[%INPUT%].NAME!"
      set "ITEM.ACTION=!%1.ITEM[%INPUT%].ACTION!"
      set "INFO_MESSAGE=!%1.EXECUTE!"
   )

   goto:printMenu

:exitMenu
   endlocal
   goto:eof

This is not my final version, so it is unsave in many ways, but it should work.

penpen