Although they're often used interchangeably, switch and parameter don't really mean the same thing. Or perhaps more accurately, the common usage of switch has rendered its definition nebulous at best, and meaningless at worst.
The tricky part, or at least the first one, is understanding the context of parsing arguments. All switches are arguments, but not all arguments are switches. Instead of focusing on batch files, it may be easier to get a handle on the concepts by looking at basic built in Windows commands. Let's say you type in the following:
dir /x /q
Windows (specifically cmd.exe) parses it, based on whitespace characters (including some special characters like commas and colons) to find parameters. Each group of consecutive whitespace characters is considered equal to a single space character for this purpose. The string of characters after the first space and before the second are assigned to %1. The string after the second space and before the third are assigned to %2. These are parameters. In this case we obviously have 2 parameters - /x and /q.
The dir command then parses each one individually to see what they mean. In this case, each parameter is interpreted as a switch that specifies what information and formatting to display the directory listing.
But you could type it like this instead:
Using the same sequence as before, cmd.exe parses it, but since there are no whitespace characters between /x and /q, there is only 1 parameter. The dir command, on the other hand, recognizes that the single parameter contains the / character and separates it into 2 different switches.
Going back to my point about how the word switch is used, consider using the copy command:
copy file1.foo file2.bar
Based on how the command line is parsed, there are definitely 2 parameters. However, depending on who you ask there are either 0 or 2 switches. Personally I prefer the strict technical definition which says there are none. A switch does exactly what the name suggests. Essentially, a switch turns a predefined operation or feature on or off.
I believe, technically speaking, the batch file (or command) name is also considered a parameter (it's certainly treated like one) and it's not an argument at all. It certainly isn't a switch.