Total Commander Knowledge Base

Есть вопрос?

Поищите ответ в самой большой русскоязычной базе знаний по Total Commander!

Копирование каталога HTML-страницы

Q: При сохранении Web страниц IE, как известно, создает директорию, куда пишет ассоциированные с данным HTML-файлом объекты (обычно такая директория называется [имя файла]_files). Так вот, при перетаскивании мышкой таких сохраненных HTML-страниц, эти директории не копируются/не перемещаются вместе с ними как в Explorer.

Есть ли какой-нибудь способ заставить их драг-энд-дропиться автоматически вместе с HTML-файлом? По Ctrl+C/Ctrl+V работает как нужно, но часто удобнее мышкой! Выделять каждый раз соответствующие каталоги перед перетаскиванием тоже громоздко.

Может быть, какие-то настройки или скрипт?

A: Батник:

copy %1%2 %3
md %3%4_files
copy %1%4_files\*.* %3%4_files\

Параметры:

%P %N %T %O

Свалял на скорую руку, но вроде работает.

Вешаешь батник на кнопку, ставишь курсор на ФАЙЛ и жмешь кнопку. Вся эта дребедень будет скопирована в ПРОТИВОПОЛОЖНУЮ панель.

Вахмурка

A: Можно включить копирование Проводником (Настройки -> Операции с файлами -> Выполнять копирование/вставку Проводником (при проблемах)), но тогда будут недоступны определённые фичи, типа копирования комментариев descript.ion и режима копирования больших файлов.

Константин Власов

A: Скрипт на VBS:

'==========================================================================
' Копирование выделенных файлов с соответствующими им (для *.html) папками
'
' Параметры вызова из TC:
' %L "%T"
'==========================================================================

Dim FSO, Fld, OTF, Rln
Set FSO = CreateObject("Scripting.FileSystemObject")
Set OTF = FSO.OpenTextFile(WScript.Arguments(0), 1)

Do While Not OTF.AtEndOfStream
Rln = OTF.ReadLine
If FSO.FileExists(Rln) Then
FSO.CopyFile Rln, WScript.Arguments(1)
Fld = FSO.GetBaseName(Rln) & "_files"
If FSO.FolderExists(Fld) Then
FSO.CopyFolder Fld, WScript.Arguments(1)
End If
ElseIf FSO.FolderExists(Rln) Then
FSO.CopyFolder Rln, WScript.Arguments(1)
End If
Loop

Set OTF = Nothing
Set FSO = Nothing
WScript.Quit

Batya