:: %1 is the first variable in the commandline
::example test.bat testing12
::%1 will be testing12
:: in your case its probably a name
SET RATING=Hello, %1.
::variables have %'s around them, external variables [args] only have a single % infront of them.
::try typing a command in cmd.exe with /? behind it.
::example CHOICE /?
CHOICE /C gb /M "How are you today(G=Good, B=Bad)" /N
IF %errorlevel% equ 1 ECHO That's nice.&goto GOOD
IF %errorlevel% equ 2 goto BAD
::labels got a : infront of them
::CLS clears the screen
ECHO Awww. I'm sorry to hear you're having a bad day.
CHOICE /C 123 /M "What would make you feel better (1=Go to a movie, 2=Go to sleep 3=Go to World of WarCraft)" /N
IF %errorlevel% equ 1 goto MOVIE
IF %errorlevel% equ 2 goto HOME
IF %errorlevel% equ 2 goto WoW
ECHO  %x%
ECHO  %y%
ECHO  %z%
CHOICE /C 123 /M "Which of the above movie genres would you like to see." /N
IF %errorlevel% equ 1 GOTO SCIFI
IF %errorlevel% equ 2 GOTO ADVEN
IF %errorlevel% equ 3 GOTO COMEDY
ECHO Enjoy your z movie.
:: >NUL will suppress the output
CALL SURVEY %z%
:: call will call a batchlabel or .bat file in %PATH%, or %CD%
:: try typing echo %PATH% or echo %CD% in CMD.exe
ECHO Enjoy your y movie.
CALL SURVEY %y%
ECHO Enjoy your %z% movie.
CALL SURVEY %x%
ECHO Class dismissed, go home.
:: will jump to :WoW, which is probably not your intention
ECHO Yeah, me too.
IF NOT '%RATING%'=='' ECHO The movie was a %RATING%.
ECHO Have a nice day, %1
message edited by hidde663