批处理文件使用%1进行复制以进行拖放

时间:2013-02-09 09:18:54

标签: batch-file parameters path drag-and-drop copy

我尝试制作拖放批处理文件。

我遇到的问题是文件存在,但批处理文件找不到它......

我想将.png个文件(如pict_2013020808172137243.png)复制到另一个文件夹并重命名。

在路径中有像_和空格这样的符号,我也不知道如何进行多次拖放以制作相同的功能(重命名并添加到.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

1 个答案:

答案 0 :(得分:40)

拖动&对批处理文件执行drop是很糟糕的 如果存在空格,则引用名称,但如果找到特殊字符则不引用,如&,;^

仅对于文件名中的空格,您需要稍微更改一下代码。

@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"

有关详细信息,请参阅Drag and drop batch file for multiple files?