1 (изменено: Кир, 2011-01-13 09:09:28)

Тема: CMD/BAT: Скопировать файлы из архивов ARJ

Подскажите, как можно скриптом vbs скопировать файлы из архивов arj.
Попробовал как с ZIP-архивами - не работает.:(

InitialFolder = "M:\Kirill\B\" ' каталог, откуда копируем
TargetFolder = "C:\n\IZM\" ' каталог, куда копируем
'====================================================================
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShellApp = CreateObject("Shell.Application")
CopyFiles InitialFolder

' процедура рекурсивно перебирает файлы в каталоге
Sub CopyFiles(FolderPath)
    Set objFolderItems = objShellApp.NameSpace(FolderPath).Items()
    For Each objFolderItem In objFolderItems
        If objFolderItem.IsFolder And LCase(Right(objFolderItem.Name, 4)) = ".arj" Then
            Set objFile = objFSO.GetFile(objFolderItem.Path)
            CopyFile objFolderItem.Path
        End If
    Next
End Sub

' процедура копирует файл
Sub CopyFile(FilePath)
    SubPath = Mid(FilePath, Len(InitialFolder) + 1)
    TargetPath = TargetFolder & SubPath
    objFSO.CopyFile FilePath, TargetPath, True
End Sub

2

Re: CMD/BAT: Скопировать файлы из архивов ARJ

Кир пишет:

Попробовал как с ZIP-архивами - не работает.

Поддержка Проводником архивов *.arj не реализована. Так что — пользовать внешний архиватор для распаковки, например, 7z.exe/7zG.exe (не 7za.exe!).

3

Re: CMD/BAT: Скопировать файлы из архивов ARJ

Сделал командным файлом. Кинул в папку с архивами arj.exe  и написал cmd-файл следующего содержания

set path=M:\KIRILL\B;%path%
dir M:\KIRILL\B\*.doc /b >files.lst
FOR /F "tokens=1" %%i IN ('type files.lst') DO (
 erase M:\KIRILL\B\%%i 
)
erase files.lst

dir M:\KIRILL\B\*.arj /b >files.lst
FOR /F "tokens=1" %%i IN ('type files.lst') DO (
echo arj.exe x M:\KIRILL\B\%%i c:\n\IZM\ >sign.cmd
echo erase M:\KIRILL\B\%%i >>sign.cmd
echo :next >>sign.cmd
call sign.cmd
)
erase files.lst
erase sign.cmd

А потом егов назначенные задания.