Batch files allow running multiple commands with a single command by automating repetitive tasks. They are simple text files with .bat or .cmd extensions containing commands that execute sequentially. The SET command in batch files allows defining, displaying, and removing environment variables as well as performing arithmetic operations. User input can be obtained using SET /P to prompt the user and assign the input to a variable. Batch files improve efficiency by reducing typing, automating complex tasks, and allowing conditional branching with GOTO.