SendTo / Batch / 7zip

时间:2015-06-11 15:43:40

标签: windows batch-file 7zip sendto

我正在尝试创建一个批处理脚本的SendTo快捷方式,该脚本将获取所选文件(在本例中为jpg' s),用7zip压缩它们并将它们命名为文件夹名称(所选文件位于)并将它们放在同一个文件夹中。目录名称中也包含空格。 我真的很亲密,但已经陷入了困境..

这是我到目前为止所得到的......

@echo off set folder=%~dp1 if exist "%folder%- Photos.zip" del "%folder%- Photos.zip" "C:\Program Files\7-Zip\7z" a -mx9 -tzip "%folder%- Photos.zip" "%~dp1*.jpg" pause

除了没有正确命名zip文件外,它正在做我想要的一切。它总是结束" - Photos.zip"在我想要的目录中。

有任何帮助吗? 提前谢谢..

2 个答案:

答案 0 :(得分:0)

您只需指定C:\folder\ - Photos.zip,但需要C:\folder\folder - Photos.zip

尝试此操作分别获取文件夹和文件名前缀:

set folder=%~dp1
set filename=%~p1
set filename=%filename:~1,-1%

无法尝试这个,因为我的平板电脑没有dosbox ;-)

然后7z这样:

"C:\Program Files\7-Zip\7z" a -mx9 -tzip "%folder%%filename% - Photos.zip" "%~dp1*.jpg"

如果你想调试它,你应该添加

echo folder is %folder% >> C:\temp\batch.log
echo filename is %filename% >> C:\temp\batch.log

稍后调查该文件。

答案 1 :(得分:0)

结束了这个并且它有效!

@echo off

set folder=%~dp1
IF %folder:~-1%==\ SET folder=%folder:~0,-1%

set name=%~p1
if %name:~-1%==\ set name=%name:~0,-1%


if exist "%folder%%name% - Photos.zip" del "%folder%%name% - Photos.zip"

"C:\Program Files\7-Zip\7z" a -mx9 -tzip "%folder%%name% - Photos.zip" "%~dp1*.jpg"