2015-06-11 61 views
0

我正在嘗試創建一個SendTo快捷方式到一個批處理腳本,它將採用選定的文件(在本例中爲jpg),用7zip壓縮它們並將它們命名爲文件夾名稱(即所選文件是in)並將它們放在同一個文件夾中。目錄名稱中也有空格。 我是真正的接近,但都創下了樹樁..SendTo/Batch/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」。

任何幫助? 在此先感謝..

+0

我看到'7z'如下正是你的文件名公式:' 「%文件夾% - Photos.zip」' – JosefZ

回答

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 

,並調查該文件以後。

+0

這並不工作@Marged – Jordan

+0

不錯!我用這個代替它,它效果更好:P Thanks @Marged – Jordan

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"