22

我试图制作一个拖放批处理文件。

我有一个文件存在但批处理文件找不到它的问题...

我想将.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
4

1 回答 1

46

批处理文件的拖放操作很糟糕。
如果存在空格,则引用名称,但如果找到特殊字符则不引用,例如&,;^

对于仅文件名中的空格,您只需稍微更改代码即可。

@ECHO OFF
ECHO "%~1"
COPY "%~1" "%CD%\test\" /Y /S 
MOVE "%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"

有关更多详细信息,请阅读多个文件的拖放批处理文件?

于 2013-02-09T11:29:44.367 回答