Добавлено: Вт дек 16, 2008 18:38
К сожалению, в консольной версии RAR упаковки в ZIP нету...
Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
Код: Выделить всё
'параметры
rem %L
rem "%T"
rem (zip|rar) тип архива
rem (0|1|2|3|4|5) степень сжатия (0 - без сжатия)
rem пропускать файлы? (0-no|1-yes) пропускать файлы из выделения,т.е. сжимать только выделенные папки.
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim WshShell : Set WshShell = CreateObject("WScript.Shell")
Dim Resp : Resp = ""
Dim Args : Set Args = WScript.Arguments
Dim TCL : TCL = Split(fso.OpenTextFile(Args(0)).ReadAll, vbNewLine)
Dim Target : Target = Args(1)
Target = Replace(Target, """", "")
Dim TARG : Dim SOURCE
Dim ArcType : ArcType = Args(2)
Dim Compression : Compression = Args(3)
Dim SkipFiles : SkipFiles = Args(4)
Dim CurArc
Dim t
Dim skip
For Each CurArc in TCL
If CurArc = "" Then WScript.Quit
skip = ""
If Right(CurArc,1) = "\" Then
t = CurArc & "=end="
TARG = Replace(t, "\=end=", "." & ArcType)
TARG = Target & fso.GetFileName(TARG)
SOURCE = Replace(t, "\=end=", "\*")
ElseIf SkipFiles = 0 Then
t = fso.GetBaseName(CurArc) & "." & ArcType
TARG = Target & t
SOURCE = CurArc
Else skip = "=skip="
End If
If Not skip = "=skip=" Then
TARG = """" & TARG & """"
SOURCE = """" & SOURCE & """"
Resp = "%COMMANDER_PATH%\PLUGINS\arc\winrar.exe a -r -ep1 -af" & ArcType & " -m" & Compression & " -ibck " &TARG & " " & SOURCE
'winrar.exe a -r -ep1 -af%3 -m%4 -ibck !target_path! !source_path
WshShell.Run Resp, 10, True
End If
Next
Код: Выделить всё
@echo off
rem Batch packing of albums into ZIP
rem parameters for Total Commander
rem %1 - %F
rem %2 - "%T"
rem %3 - (zip|rar) тип архива
rem %4 - compression (0|1|2|3|4|5) степень сжатия (0 - без сжатия)
rem %5 - miss files? (0-no|1-yes) пропускать файлы из выделения, rem т.е. сжимать только выделенные папки.
set miss_files=%5
chcp 1251 >nul
setlocal enabledelayedexpansion
for /f "delims=" %%a in (%1) do (
set target_path=%~2
set temp_a=%%a
set whatis_a=!temp_a:~-1!
if !whatis_a!==\ (
set temp_a=!temp_a:~0,-1!
echo packing:: !temp_a!.%3
set source_path="%%~fa*"
set target_path="!target_path!!temp_a!.%3"
%COMMANDER_PATH%\PLUGINS\arc\winrar.exe a -af%3 -r -ep1 -m%4 -ibck !target_path! !source_path!
)
if !whatis_a! NEQ \ (
if !miss_files!==0 (
set temp_a=%%~na
echo file packing:: !temp_a!.%3
set source_path="%%~fa"
set target_path="!target_path!!temp_a!.%3"
%COMMANDER_PATH%\PLUGINS\arc\winrar.exe a -af%3 -m%4 -ibck !target_path! !source_path!
)
)
)
endlocal
pause
А если расширение не передавать?_Johm писал(а):;не смог убрать расширение из переменной temp_a.
Код: Выделить всё
set temp_a="%%~dpna"