Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Автоматическое создание папок
Goto page Previous  1, 2, 3 ... 7, 8, 9 ... 13, 14, 15  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Oct 08, 2011 18:53    Post subject: Reply with quote

Tol!k wrote:
Сортировка по дате рулит.
Back to top
View user's profile Send private message
zlodei1988



Joined: 28 Sep 2011
Posts: 10

Post (Separately) Posted: Sun Oct 09, 2011 18:55    Post subject: Reply with quote

По теме созданию папок, есть ли возможность дописать какую то строку в код, чтобы только что созданные папки всегда были на виду! Когда создаешь папки, они доходят до нижнего уровня в ТС и создаются дальше, но их уже не видать( надо сделать так чтоб они всегда были на виду...
_________________
ХОЧУ ВСЕ ЗНАТЬ
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10415
Location: Россия, Саратов

Post (Separately) Posted: Sun Oct 09, 2011 19:27    Post subject: Reply with quote

zlodei1988
Замечание за нарушение правил форума. На батник следовало дать ссылку (или попросить модератора помочь с этим), а не цитировать его целиком, да ещё в виде обычного текста. Выделять весь свой текст красным недопустимо. Пост отредактирован, убран ещё кое-какой мусор. Дубль прибит.
Что касается "папок на виду", то лично я, к сожалению, ничего не понял, но, может быть, кому-то повезёт больше.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.


Last edited by Avada on Sun Oct 09, 2011 22:54; edited 3 times in total
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Oct 09, 2011 19:59    Post subject: Reply with quote

zlodei1988
Сортировка папок
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Oct 09, 2011 22:26    Post subject: Reply with quote

Tol!k
Ты, в принципе, можешь добавить переход с TCMC.exe cds <путь к перемещённому файлу> "", если уж так человеку надо.
Back to top
View user's profile Send private message
BezDNaU



Joined: 31 May 2008
Posts: 65

Post (Separately) Posted: Wed Oct 12, 2011 09:53    Post subject: Перемещение по спискам Reply with quote

Есть несколько текстовых файлов с путями:
CD 1.txt
CD 2.txt
CD 3.txt
CD 4.txt
CD 5.txt и т.д.
Содержимое приблизительно такое:
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\01-nu.pogodi.01.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\02-nu.pogodi.02.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\03-nu.pogodi.03.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\04-nu.pogodi.04.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\05-nu.pogodi.05.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\06-nu.pogodi.06.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\07-nu.pogodi.07.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\08-nu.pogodi.08.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\09-nu.pogodi.09.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\10-nu.pogodi.10.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\11-nu.pogodi.11.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\12-nu.pogodi.12.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\13-nu.pogodi.13.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\14-nu.pogodi.14.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\15-nu.pogodi.15.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\16-nu.pogodi.16.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\17-nu.pogodi.17.avi
E:\VIDEO\Мульты\Советские\Советские\Ну погоди\18-nu.pogodi.18.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\01-leopold.progulka.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\02-leopold.televizor.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\03-leopold.poliklinika.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\04-leopold.leto.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\05-leopold.kot.leopold.vo.sne.i.nayavu.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\06-leopold.klad.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\07-leopold.avtomobil.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\08-leopold.den.rozhdenia.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\09-leopold.i.zolotaya.rybka.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\10-leopold.mest.kota.leopolda.avi
E:\VIDEO\Мульты\Советские\Советские\Леопольд\11-leopold.interview.avi
E:\VIDEO\Мульты\Советские\Советские\Трое из Простоквашино\Зима в Простоквашино.avi
E:\VIDEO\Мульты\Советские\Советские\Трое из Простоквашино\Каникулы в Простоквашино.avi
E:\VIDEO\Мульты\Советские\Советские\Трое из Простоквашино\Трое из Простоквашино.avi
E:\VIDEO\Мульты\Советские\Советские\Девочка и слон .avi

Нужно создать папки с именем txt файла (папка CD 1 для файла CD 1.txt и т.д.) и переместить в них файлы из списка с сохранением подкаталогов (папки не выделенные жирным).
Можно ли такое провернуть?
Заранее спасибо за помощь.

 !  Avada:
Переносится в уже имеющуюся тему.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 10:16    Post subject: Reply with quote

Code:
'======================================================================
' Перемещать файлы и папки, указанные в файлах-списках
' в папки с базовыми именами этих файлов-списков
' Параметры: %L <путь_назначения\>
' Пример: %L "%T"
'======================================================================
L = vbNewLine
D = InputBox(L&L&L&"Введите число отсекаемых компонентов " & L &_
"в началах путей, записанных" & L & "в выделенные файлы :",_
Space(13) & "Перемещение файлов и папок по спискам")
If Trim(D) = "" Or Not IsNumeric(D) Then Wscript.Quit

With CreateObject("Scripting.FileSystemObject")
  Set TF = .OpenTextFile(WScript.Arguments(0), 1)
  Do While Not TF.AtEndOfStream
    F = TF.ReadLine
    If F > vbNullString And .FileExists(F) Then
      Trg = WScript.Arguments(1) & .GetBaseName(F)
      If Not .FolderExists(Trg) Then .CreateFolder Trg
      For Each Fn in Split(.OpenTextFile(F, 1).ReadAll, vbNewLine)
        Fn = Trim(Fn)
        If Fn <> "" And Mid(Fn, 2, 1) = ":" Then
          Fx = Fn
          Do While Abs(D) =< Abs(Ubound(Split(Fx, "\")))
            Fx = .GetParentFolderName(Fx)
          Loop
          FPath = Trg & "\" & .GetParentFolderName(Mid(Fn, Len(Fx)+2))
          If Not .FolderExists(FPath) Then .CreateFolder FPath
          If .FolderExists(Fn) Then .GetFolder(Fn).Move FPath & "\"
          If .FileExists(Fn) Then .GetFile(Fn).Move FPath & "\"
        End If
      Next
    End If
  Loop
  TF.Close
End With


Last edited by Flasher on Wed Oct 12, 2011 17:16; edited 7 times in total
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 12, 2011 10:44    Post subject: Reply with quote

Уже было.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 10:49    Post subject: Reply with quote

Так и знал, что было, только сделать было быстрей, чем искать. Smile
Back to top
View user's profile Send private message
BezDNaU



Joined: 31 May 2008
Posts: 65

Post (Separately) Posted: Wed Oct 12, 2011 10:56    Post subject: Reply with quote

Спасибо но не совсем то.
Скрипт копирует файлы без сохранения подкаталогов т.е. для указанного примера должно получиться так:
CD 1\
-Ну погоди\
--01-nu.pogodi.01.avi
--02-nu.pogodi.02.avi
--03-nu.pogodi.03.avi
--04-nu.pogodi.04.avi
--05-nu.pogodi.05.avi
--06-nu.pogodi.06.avi
--07-nu.pogodi.07.avi
--08-nu.pogodi.08.avi
--09-nu.pogodi.09.avi
--10-nu.pogodi.10.avi
--11-nu.pogodi.11.avi
--12-nu.pogodi.12.avi
--13-nu.pogodi.13.avi
--14-nu.pogodi.14.avi
--15-nu.pogodi.15.avi
--16-nu.pogodi.16.avi
--17-nu.pogodi.17.avi
--18-nu.pogodi.18.avi
-Леопольд\
--01-leopold.progulka.kota.leopolda.avi
--02-leopold.televizor.kota.leopolda.avi
--03-leopold.poliklinika.kota.leopolda.avi
--04-leopold.leto.kota.leopolda.avi
--05-leopold.kot.leopold.vo.sne.i.nayavu.avi
--06-leopold.klad.kota.leopolda.avi
--07-leopold.avtomobil.kota.leopolda.avi
--08-leopold.den.rozhdenia.kota.leopolda.avi
--09-leopold.i.zolotaya.rybka.avi
--10-leopold.mest.kota.leopolda.avi
--11-leopold.interview.avi
-Трое из Простоквашино\
--Зима в Простоквашино.avi
--Каникулы в Простоквашино.avi
--Трое из Простоквашино.avi
-Девочка и слон .avi
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 12, 2011 10:56    Post subject: Reply with quote

Flasher
Не проверял твой скрипт, но, по крайней мере, BezDNaU хотел не копировать, а перемещать. Поправь.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 11:09    Post subject: Reply with quote

Batya
BezDNaU wrote:
переместить в них файлы из списка
Не из папок.

BezDNaU
Да, я вот только сам заметил. Тогда нужно прояснить критерий обрезания. Либо по номеру компонента в заданном пути, либо глубине вложенности. Как лучше?
Back to top
View user's profile Send private message
BezDNaU



Joined: 31 May 2008
Posts: 65

Post (Separately) Posted: Wed Oct 12, 2011 11:18    Post subject: Reply with quote

Скорее по глубине вложенности.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Wed Oct 12, 2011 11:29    Post subject: Reply with quote

BezDNaU
Боюсь, что с глубиной вложенности не получится, т.к. она разная:
BezDNaU wrote:
E:\VIDEO\Мульты\Советские\Советские\Трое из Простоквашино\Трое из Простоквашино.avi
E:\VIDEO\Мульты\Советские\Советские\Девочка и слон .avi
Сделаю по номеру компонента.

Last edited by Flasher on Wed Oct 12, 2011 11:49; edited 1 time in total
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2224
Location: Москва, Россия

Post (Separately) Posted: Wed Oct 12, 2011 11:48    Post subject: Reply with quote

Сначала неверно понял задачу.

Сделал с перемещением с родительской папкой (глубина вложенности = 1):
Code:
'=====================================================================
' Создание папки по имени файла-списка и перемещение в нее файлов
' из файла-списка с родительской папкой.

' Параметры:
' {файл-список} {целевая папка}
'=====================================================================
Option Explicit
Dim FSO, FileList, TargetDir, F, FF

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

FileList  = WScript.Arguments(0)
TargetDir = WScript.Arguments(1)
If Right(TargetDir, 1) <> "\" Then TargetDir = TargetDir & "\"
Set FSO   = CreateObject("Scripting.FileSystemObject")
TargetDir = TargetDir & FSO.GetBaseName(FileList) & "\"

With FSO.OpenTextFile(FileList, 1)
  Do While Not .AtEndOfStream
    F = Trim(.ReadLine)
    If F <> "" And FSO.FileExists(F) Then
      FF = TargetDir & FSO.GetFileName(FSO.GetParentFolderName(F)) & "\"
      CreateFolder FF
      FSO.MoveFile F, FF
    End If
  Loop
  .Close
End With

MsgBox "Выполнено!", vbOKOnly + vbInformation, "Результат"
Set FSO = Nothing
Wscript.Quit

Sub CreateFolder(pFolder)
  Dim lParentFolder
  If Not FSO.FolderExists(pFolder) Then
    lParentFolder = FSO.GetParentFolderName(pFolder)
    If Not FSO.FolderExists(lParentFolder) Then CreateFolder(lParentFolder)
    FSO.CreateFolder(pFolder)
  End If
End Sub

_________________
Нет, я не сплю. Я просто медленно моргаю.


Last edited by Batya on Wed Oct 12, 2011 13:43; edited 1 time in total
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 7, 8, 9 ... 13, 14, 15  Next
Page 8 of 15

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group