Assuming you don't have central management like CiscoWorks, I'd recommend executing shell/Expect scripts from a Linux box, in these steps:
Create a directory, enter into it.
Create text files with the devices' names (i.e. switch01.txt)
Create the Expect script below, add executable rights
Create the shell script below, add executable rights
Run the shell script like this: ./myscript CLI_USER CLI_PASS
This is not a fancy way, but it worked for me before. Please check all scripts as I only wrote them now without testing. Also note that there's no error checking, you have to check all data manually before executing the script.