簡體   English   中英

SendTo / Batch / 7zip

[英]SendTo / Batch / 7zip

我正在嘗試創建一個批處理腳本的SendTo快捷方式,該快捷方式將使用選定的文件(在本例中為jpg文件),將其壓縮為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”結尾。

有什么幫助嗎? 提前致謝..

您僅指定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

稍后再調查該文件。

最終想到這個,它起作用了!

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM