--> setlocal This is stdout stream 1. This is stderr stream 2. This is stdout stream 3. --> (rem echo hello ) & echo hello hello --> rem CD: "C:\test" --> rem %*: --> for %A in (1 2 3) do ( rem remark echo(%A ) --> ( rem remark echo(1 ) 1 --> ( rem remark echo(2 ) 2 --> ( rem remark echo(3 ) 3 --> echo Error line1. 1>&2 Error line1. --> rem Get first name of the user. --> set "first=" --> set /p "first=First Name: " 1>&3 First Name: Jon --> echo "Jon" "Jon" --> echo Error line2. 1>&2 Error line2. --> rem Get last name of the user. --> set "last=" --> set /p "last=Last Name: " 1>&3 Last Name: Doe --> echo "Doe" "Doe" --> echo Press only return at pause Press only return at pause --> pause1>&3 Press any key to continue . . . --> rem Print greeting with first and last name. --> echo Hello Jon Doe Hello Jon Doe --> echo Error line3. 1>&2 Error line3. --> rem Prompt the user to end. --> set "reply=y" --> set /p "reply=Ready to end? [y|n]: " 1>&3 Ready to end? [y|n]: y --> echo "y" "y" --> if /I "y" == "y" ( rem Good finish. echo Bye ) else if /I "y" == "n" ( rem Alternative finish. echo Nice try, bye ) else echo ... bye Bye --> exit /b 1