View previous topic :: View next topic |
Author |
Message |
Avada

Joined: 01 Aug 2008 Posts: 10415 Location: Россия, Саратов
|
(Separately) Posted: Wed Apr 27, 2011 23:52 Post subject: |
|
|
Вахмурка
Я это тоже сначала хотел предложить. но теперь всё упирается в этот грандиозный файл-список из 9 тысяч (?) папок верхнего уровня. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
 |
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Wed Apr 27, 2011 23:57 Post subject: |
|
|
Именно в этом вся и проблема, если б их было неско десятков, я б и тему поднимать не стал, быстрее было бы вручную. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 28, 2011 00:08 Post subject: |
|
|
Тут я бы назвал тему: Перемещение всех файлов в каталоги верхнего уровня
И критерий будет соответствующим.
В общем-то, сделать можно.
Исправил. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Apr 28, 2011 02:16 Post subject: |
|
|
Вахмурка wrote: | 2den114
Потренируйся на кошках. |
Ещё один вариант для тренировки на кошках.
Выделить нужные каталоги и упаковать их по Alt+F5 в какой-нибудь временный каталог с опциями “Отдельные архивы для каждого выбранного файла/каталога” и “Учитывать подкаталоги”, но без того чтобы “Сохранять пути”. Опцию “Удалять исходные файлы после упаковки” добавлять по вкусу или по свободному месту на диске. Самым сложным будет выбрать опцию замены существующих файлов. Возможно, подойдёт “Пропустить все”.
Затем выделить все архивы и по Alt+F9 “Распаковать каждый архив в отдельный каталог (с именем архива)”. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Thu Apr 28, 2011 10:31 Post subject: |
|
|
den114
vbs-скрипт:
Code: | '=====================================================================
' Перемещение файлов в корневую папку (верхнюю)
' Параметры:
' {файл-список корневых папок}
' Пример параметров при вызове из TC:
' %L
'=====================================================================
Dim FSO, F
Set FSO = CreateObject("Scripting.FileSystemObject")
With FSO.OpenTextFile(WScript.Arguments(0), 1)
Do While Not .AtEndOfStream
F = Trim(.ReadLine)
If F <> "" Then
If FSO.FolderExists(F) Then
If Right(F, 1) <> "\" Then F = F & "\"
Process F, F
End If
End If
Loop
End With
Set FSO = Nothing
Wscript.Quit()
Sub Process(pPath, pTarget)
Dim lF
For Each lF in FSO.GetFolder(pPath).SubFolders
Process lF.Path & "\", pTarget
Next
If LCase(pPath) <> LCase(pTarget) Then
For Each lF in FSO.GetFolder(pPath).Files
'Если файл с целевым именем существует, предварительно удаляем его
If FSO.FileExists(pTarget & lF.Name) Then FSO.DeleteFile pTarget & lF.Name, True
lF.Move pTarget
Next
End If
End Sub
|
_________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Apr 28, 2011 10:52 Post subject: |
|
|
den114 wrote: | В случае если перемещаемый файл уже присутствует он должен заменятся. |
Какой алгоритм замены? Например, оставлять более свежие файлы... |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Thu Apr 28, 2011 11:23 Post subject: |
|
|
sa wrote: | Какой алгоритм замены? |
Никакой. Просто замена. В задании ничего подобного не требовалось. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Apr 28, 2011 11:38 Post subject: |
|
|
То есть получается, что задача одна, а ответов у неё великое множество, если конечно в дереве не дубли одних и тех же файлов. |
|
Back to top |
|
 |
Batya

Joined: 15 Dec 2004 Posts: 2224 Location: Москва, Россия
|
(Separately) Posted: Thu Apr 28, 2011 11:57 Post subject: |
|
|
sa
У автора темы условия могут быть любые.
Например, в корневой папке должны лежать актуальные версии файлов, а появляются такие файлы где-то в дебрях вложенной структуры. При этом имена пересекаются только с именами файлов, уже лежащих в корневой папке.
Вообщем, ты для себя спрашиваешь или чисто академический интерес? Если для себя, то опиши, что тебе надо. В ином случае, лучше дождаться ответа автора темы. _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Apr 28, 2011 12:42 Post subject: |
|
|
Batya wrote: | В ином случае, лучше дождаться ответа автора темы. | Именно так. |
|
Back to top |
|
 |
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Thu Apr 28, 2011 16:47 Post subject: |
|
|
Никаких условий замены нет, просто если при перемещении оказывается что такой файл уже есть он заменяется вновь пришедшим. Вне зависимости от даты их создания размера и т.д. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 28, 2011 16:54 Post subject: |
|
|
den114
Вообще-то в таких случаях спасибо (как минимум) говорят.  |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Thu Apr 28, 2011 17:14 Post subject: |
|
|
Действительно Batya wrote: | У автора темы условия могут быть любые. | в том числе и
den114 wrote: | Никаких условий замены нет<>Вне зависимости от даты их создания размера и т.д | Не ожидал…Тогда, наверное и на кошках тренироваться не надо. |
|
Back to top |
|
 |
den114
Joined: 03 Nov 2007 Posts: 25
|
(Separately) Posted: Thu Apr 28, 2011 17:31 Post subject: |
|
|
Flasher wrote: | [b]
Вообще-то в таких случаях спасибо (как минимум) говорят.  |
Спасибо это слабо сказано
Просто нет привычки заранее (до проверки) как ругать так и благодарить.
Batya
ОГРОМНОЕ СПАСИБО !!! Буду должен. |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Thu Apr 28, 2011 17:33 Post subject: |
|
|
den114
А я уже по коду вижу, что там всё правильно. Сам вчера начал что-то аналогичное делать, потом дела другие появились.  |
|
Back to top |
|
 |
|