You don't need a batch file. Autoit can send commands like a console, and you can pull off the for statement in a similar manner.
That being said...
set /p sourcedir=%%1*
then when you run the batch file from within the script, just supply the $sourcedir variable as it's argument (use quotes around it).
ShellExecute ("list-pics.bat",$sourcedir,"","open",@SW_HIDE)