Ответ 1
Перетаскивание плохо реализовано для пакетных файлов.
Имена цитируются, если присутствует пробел, но нет, если найден специальный символ, например &,;^
Для пробелов только в именах файлов вам нужно немного изменить свой код.
@ECHO OFF
ECHO "%~1"
COPY "%~1" "%CD%\test\" /Y /S
REN "%CD%\mob\*.png" "%CD%\test\test.png"
7za u -tzip "%appdata%\.virto\pack.zip" "test" -r
%~1
всегда расширяется до некотируемой версии, поэтому всегда можно их процитировать безопасным способом.
"c:\Docs and sets" -> %~1 -> c:\Docs and sets -> "%~1" -> "c:\Docs and sets"
c:\Programs -> %~1 -> c:\Programs -> "%~1" -> "c:\Programs"
Подробнее читайте Перетащите пакетный файл для нескольких файлов?