I am looking at automating unzipping some files I have in directories. I am having a problem getting thru dumb characters in the filename, like spaces and dashes.

for i in ls *7z; do 7za -y e $i; done

This fails at those special cases. What do I do to properly pass in the proper filename?