InterviewSolution
| 1. |
Solve : The menu to run the batch? |
|
Answer» I run the batch file used for OS backup and Recover the data from the Storage on the Window. The source code only for adjust host name and folder name. The new host backup, it only adjust the folder name and host name. But it sometimes to human error to lead the script run fail. clsAnd you enter 2 at the command line you would have something like Quote Hello World You can also do away with the @echo. and just use echo. if you use Echo Off at the beginning. This will hide the command prompt until Echo On is executed. Quote echo off This is a description of what the above does: 1.) Echo Off to hide command prompt 2.) cls to clean SCREEN 3.) echo. hello world so "hello world" is displayed ( Print to Screen = echo. ) in this case. 4.) pause to pause the batches execution until any key is pressed 5.) Echo On to bring back the command prompt So a simple menu can be set up like this named autoexec.bat Quote Echo Off 1.bat will contain the batched instructions for option 1 2.bat will contain the batched instructions for option 2 3.bat will contain the batched instructions for option 3 q.bat will contain the batches instructions for (q or Q key - not case sensitive on MS OS ) and at the end of the batch instructions contained within q.bat you might want to issue a Echo On command to bring the command prompt back to the user. If you want to have it all contained within a single batch you can use goto statements, but I am trying to make this as simple for you to comprehend as possible. Isolating the batched instructions also makes management of it EASIER as for instead of having 1 batch with everthing contained within it, you can modify the batch for option 2 etc and if you have a typo your batch will function until you get to option 2 and then you know that the issue is contained within 2.bat etc. If you want to have a single batch such as all choices listed and goto's it can be done in a menu type batch with gotos. The above was written for MS OS .... are you doing this on a SUN OS since your user name is SUN_OS? If so the q and Q will be case sensitive and cls for clear screen I think is "CLEAR" instead of CLS etc. There also may be differences in how the echo works under SUN. Its been a long time since I played with SUN OSTo turn off echoing the first line of a batch file should be really be @echo off (i.e. the first character of the line is @). If you just have Echo Off then those two words will be echoed to the screen, although subsequent commands will not be echoed. Thank you for all helpful hints, I draft the batch file like this, source code as below ECHO off CLS :MENU ECHO. ECHO ....................................... ........ ECHO Select server for Applies Standalone Lan Server ECHO ....................................... ........ ECHO. ECHO 1 - Shutdown ECHO 2 - Restart ECHO 3 - Ping test ECHO 4 - Quit ECHO. SET /p M=Type 1 2 3 4 then press ENTER: IF %M%==1 GOTO SHUTDOWN IF %M%==2 GOTO RESTART IF %M%==3 GOTO PING IF %M%==4 GOTO QUIT :SHUTDOWN set /p servername=" Enter the server name " set /p yesno=Shutdown the %servername% ? [y/n] IF "%yesno%" == "y" GOTO CONFIRM1 IF "%yesno%" == "n" GOTO MENU :CONFIRM1 shutdown -m \\"%servername%" -s :RESTART set /p servername=" Enter the server name " set /p yesno=Reboot the "%servername%" ? [y/n] IF "%yesno%" == "y" GOTO CONFIRM2 IF "%yesno%" == "n" GOTO MENU :CONFIRM2 shutdown -m \\"%servername%" -r :PING set /p servername=" Enter the server name " set /p yesno=Are you ping the "%servername%" ? [y/n] IF "%yesno%" == "y" GOTO CONFIRM3 IF "%yesno%" == "n" GOTO MENU :CONFIRM3 ping "%servername%" :break GOTO QUIT :END From the source code, I want to enhance the menu to do several things 1. I want to the operator can return the menu page after ping test. 2. I want to the operator can runas admin right account to remote reboot and shutdown 3. Due to the operator has the right restriction, they cannot do run CMD to run the command. May I know how to process the batch file without cmd ? Thanks |
|