Пакетный файл Копирование с использованием% 1 для перетаскивания - программирование
Подтвердить что ты не робот

Пакетный файл Копирование с использованием% 1 для перетаскивания

Я попытался сделать пакетный файл с перетаскиванием. У меня проблема, что файл находится на месте, но командный файл не смог найти его...

Я хочу скопировать файлы .png (например, pict_2013020808172137243.png) в другую папку и переименовать ее. На пути есть символы типа _ и пробелы, также я не t know how to make multi-drag-and-drop to make the same function (rename and add to.zip`). Я пробовал это, но без результата: (

@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
4b9b3361

Ответ 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"

Подробнее читайте Перетащите пакетный файл для нескольких файлов?