|oh, i think i might see the issue:|
For /F "tokens=* delims=" %%A in ('DIR \png\*.png/b') do (
copy "g:\%%A" "c:\png2\%%~nA%Month%-%Day%-%Year%.png")
this does a list of directory \png\*.png, (drive c:, presumably) but it is trying to copy that name from the host (g:), so two different directories are being used. If there is a file in c:\png that does not exist in g:\ then the script will fail. I don't know if, or how, these two different directories are being synchronized, or if this doubtful operation is even what you intended (list from c:\png applied to directory of g:\ to copy back to c:\png2\).
maybe you intended this?
for... in ('DIR g:\png\*.png/b') do (
copy "g:\png\%%A" "c:\png2\%%~nA01-11-10.png"
or: 'DIR g:\*.png/b' ... copy "g:\%%A" "c:\png2\..."
at any rate, try and let me know exactly what you are trying to accomplish. i get the gist of it, but not enough to know what your intention is. these paths (to, from,) need to be very explicit and consistant or else "file not found" and :(