Автоматическое создание папок

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Моторокер, Avada, CaptainFlint, Nik, d-view

Аватара пользователя
Mansour
Сообщения: 10
Зарегистрирован: Ср янв 18, 2006 09:35

Автоматическое создание папок

Сообщение Mansour »

есть некая дирректория с файлами.
существует ли возможность создать в этой дирректории папки с именами имеющихся в ней файлов... ну и запихать туда соответствующие файлы :?:

существует, конечно, вариант создать из файлов архивы, а потом разархивировать с созданием отдельной папки для каждого архива...
но, это как-то того... не слишком технологично :)

есть более простые решения?
Аватара пользователя
Batya
Сообщения: 2237
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Нечто подобное я уже делал. Теперь немного проще:

Код: Выделить всё

'=====================================================================
' Создание папки по имени файла и перемещение в нее файла
' Может быть выделено несколько файлов

' Для создания папок в текущей панели
'   в параметрах вызова из TC должно быть прописано:
' %L

' Для создания папок в противоположной панели
'   в параметрах вызова из TC должно быть прописано:
' %L "%T"
'=====================================================================

If WScript.Arguments.Count = 0 Then
  MsgBox "Не указаны параметры!", vbOKOnly + vbError, "Внимание!"
  Wscript.Quit
End If

Dim TempFile, FSO, SelFile
Set FSO      = CreateObject("Scripting.FileSystemObject")
Set TempFile = FSO.OpenTextFile(WScript.Arguments(0), 1)

Dim FileName, FilePath, DashInName, NewFilePath
Do While Not TempFile.AtEndOfStream
  Set SelFile = FSO.GetFile(TempFile.ReadLine)
  FileName    = FSO.GetBaseName(SelFile)
  FilePath    = SelFile.ParentFolder
  If WScript.Arguments.Count > 1 Then
    NewFilePath = WScript.Arguments(1) & FileName
  Else
    NewFilePath = FilePath & "\" & FileName
  End If
  If Not FSO.FolderExists(NewFilePath) Then
    FSO.CreateFolder(NewFilePath)
  End If
  If Not FSO.FileExists(NewFilePath & "\" & FileName) Then
    FSO.MoveFile SelFile, NewFilePath & "\"
  Else
    MsgBox "Уже существует файл " & FileName & " в папке " & NewFilePath, vbOKOnly + vbExclamation, "Внимание!"
  End If
Loop
Set TempFile = Nothing
Set FSO      = Nothing
Set SelFile  = Nothing
Wscript.Quit
Аватара пользователя
tpa204
Сообщения: 14
Зарегистрирован: Сб дек 18, 2004 00:15

подскажите а как воспользоватся этим скриптом

Сообщение tpa204 »

подскажите а как воспользоватся этим скриптом. Функционал такой нужен, а скриптами никогда не пользовался
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Скопируй скрипт, создай текстовый файл, вставь туда скрипт, сохрани файл как blabla.vbs, перетащи его на панель кнопок тотала, измени получившуюся кнопку так, как сказано в начале скрипта (т.е. впиши нужные параметры - два варианта на выбор). После этого выделяй нужные файлы и нажимай кнопку.

ЗЫ: занятно, что я так и не смог найти в TCKB ответа на такой вопрос =((
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

ЗЫ: занятно, что я так и не смог найти в TCKB ответа на такой вопрос =((
http://tckb.megabyte-web.ru/content/view/209/100/
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Я про другой вопрос - как пользоваться скриптами?
Аватара пользователя
D1P
Сообщения: 2987
Зарегистрирован: Пн дек 20, 2004 18:30
Откуда: Тбилиси
Контактная информация:

Сообщение D1P »

Я про другой вопрос - как пользоваться скриптами?
О том, как пользоваться тем или иным скриптом почти всегда написано в той же статье, где и сам скрипт. Делать отдельную статью ради кратенькой инструкции "копируйте текст в файлик vbs и запускайте файлик" бессмысленно.
Аватара пользователя
tpa204
Сообщения: 14
Зарегистрирован: Сб дек 18, 2004 00:15

Сообщение tpa204 »

Претензию принимаю! в следующий раз залезу в базу знаний прежде чем спрашивать!
Спасибо!
Аватара пользователя
tpa204
Сообщения: 14
Зарегистрирован: Сб дек 18, 2004 00:15

Сообщение tpa204 »

Set TempFile = FSO.OpenTextFile(WScript.Arguments(0), 1)

на этой строчке скрипт запинается пишет файл не найден! Как лечить?
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

D1P писал(а):О том, как пользоваться тем или иным скриптом почти всегда написано в той же статье, где и сам скрипт.
Да щаз!

В статье есть смысл - тогда можно из остальных статей соответствующую информацию убрать, если только использовние скрипта "обычно".
tpa204 писал(а):на этой строчке скрипт запинается пишет файл не найден! Как лечить?
Кавычки на %L поставить.
Аватара пользователя
tpa204
Сообщения: 14
Зарегистрирован: Сб дек 18, 2004 00:15

Сообщение tpa204 »

не сработало! Кавычки не помогли! м.быть такое?
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Скопируй сюда кнопку. (Правой кнопки мыши на ней нажми и выбери "Копировать"). Вставлять в тег code
Аватара пользователя
tpa204
Сообщения: 14
Зарегистрирован: Сб дек 18, 2004 00:15

Сообщение tpa204 »

TOTALCMD#BAR#DATA
"c:\Program Files\Total Commander\Rename&Move in it.vbs" "%L"

C:\WINDOWS\System32\WScript.exe
Rename&Move in it
c:\Program Files\Total Commander\

-1
Аватара пользователя
Volniy
Сообщения: 585
Зарегистрирован: Ср дек 15, 2004 00:17
Откуда: Местный

Сообщение Volniy »

tpa204 писал(а):TOTALCMD#BAR#DATA
"c:\Program Files\Total Commander\Rename&Move in it.vbs" "%L"

C:\WINDOWS\System32\WScript.exe
Rename&Move in it
c:\Program Files\Total Commander\

-1
Нужно перенести "%L" в поле "Параметры", а то в поле "Команда" эта переменная не расширяется в имя файла-списка.
Аватара пользователя
tpa204
Сообщения: 14
Зарегистрирован: Сб дек 18, 2004 00:15

Сообщение tpa204 »

Уважаю!
Работает! смотрю как на чудо!
Ответить