Перемещение файлов вместе с содержимым каталога
Select messages from
# through # FAQ
[/[Print]\]
Goto page Previous  1, 2, 3  Next  :| |:
Total Commander -> Автоматизация Total Commander

#16:  Author: shveicarLocation: Россия Москва PostPosted: Tue May 08, 2012 16:56
    —
Flasher wrote:
Какая разница с чего начинать, если нужны все типы?
Все типы файлов которые по смыслу могут быть связаны с htm(html) файлами: например gif, png, css и другие. Мне кажется, что создавать скрипт ради одноразовой, - конкретной задачи, не имеет смысла, поэтому Я и пытаюсь объяснить, что ситуация с пропущенными htm(html) файлами, возникает довольно часто, мой случай лишь разовый пример, и если речь идет о создании "универсального инструмента" - ориентироваться нужно на файлы htm(html) типов.
Quote:
А счётчик чем плох?

А если имена в начале каталогов имеют цифровое обозначение? например 1_11..[a-z],11_2..[a-z] то как они будут выглядеть?
Quote:
При автоматическом переименовании папок? Да ну?

Если брать простой пример, - все нужные файлы лежат в одном катологе, - то, да , согласен. А если есть взаимосвязь с корневой папкой, например таблица стилей
Code:
../../../style.css
или связь с другим контентом, в аналогичном виде? Поэтому, Я и упоминаю что прежде, чем использовать автоматический режим, нужно все проверить, и иногда скопировать вручную.
Quote:
Если не разбивать подкаталоги по критерию наличия в их корнях всех указанных типов, то тогда будут возникать дубликаты по структуре...Т.е. уже 2 дубликата. Зачем они?

Именно, из за возможности взаимосвязи между уровнями, как Я уже упомянул, в таблицах стилей, и других файлов. При таком варианте, сразу будет видно, есть связь или нет. Поясню: достаточно открыть файл htm, например в каталоге "Папка 2"и посмотреть, - если вид документа изменен, значит есть взаимосвязь с каталогом "Папка 1" или более верхними каталогами.
Quote:
Это тут к чему? У меня написано 3. "Мои документы 2" (3 расш.)
Так ведь здесь в начальном варианте указанно (2 расш.)
Quote:
Например, была такая структура:
1. "Мои документы" (3 расш.) > 2. "Мои документы 1" (2 расш.) > 3. "Мои документы 2" (3 расш.) > 4. "Мои документы" (3 расш.) > 5. "Мои документы" (3 расш.)

Поэтому, Я подумал, что после срабатывания скрипта 2 изменилось на 3, другими словами, в каталоге "Мои документы 1" - появилось еще одно непонятное расширение, (возможно это опечатка?)
Quote:
А почему тогда сразу не помещать в такие папки html-шаблоны?
Можно и так, но для этого, нужно быть провидцем, - знать что отсутствуют совпадающие имена (htm) файлов, видеть всю структурную взаимосвязь файлов между собой, и иметь в наличии "супер скрипт" корректирующий содержание каждого htm шаблона, перед его размещением в соответствующие каталоги. К сожалению, Я таким "инструментом" не располагаю, поэтому пользуюсь таким способом.

#17:  Author: FlasherLocation: Москва PostPosted: Tue May 08, 2012 17:21
    —
shveicar wrote:
если речь идет о создании "универсального инструмента" - ориентироваться нужно на файлы htm(html) типов
"Чем дальше в лес, тем больше дров." Я прежде всего ориентировался по этим словам:
shveicar wrote:
Моя задача - найти каталоги с полным "комплектом" (наличие в каталоге всех трех типов файлов)
Теперь всё изменилось?

shveicar wrote:
А если имена в начале каталогов имеют цифровое обозначение? например 1_11..[a-z],11_2..[a-z] то как они будут выглядеть?
Смотря как задавать счётчик. Берём привычное переименование со скобками "Имя (№)". Зависимость "_№" тут отсутсвует, т.е. счётчик будет добавляться к новым именам.

shveicar wrote:
Если брать простой пример, - все нужные файлы лежат в одном катологе, - то, да
С чего бы только простой? Берётся каталог на любом уровне и при наличии одноимённого в получателе перемещается с переименованием.

shveicar wrote:
Именно, из за возможности взаимосвязи между уровнями
Из-за чего это происходит меня не волнует. Мне нужно узнать, что делать в итоге - и только. Разбивать или дублировать?

shveicar wrote:
Так ведь здесь в начальном варианте указанно (2 расш.)
Это указано для Мои документы 1, а не 2. См. внимательней.
shveicar wrote:
возможно это опечатка?
В моём случае опечаток нет. 2-я папка пропускается при 2-х расширениях, в то время как необходимы 3.

shveicar wrote:
Можно и так, но для этого, нужно быть провидцем, - знать что отсутствуют совпадающие имена (htm) файлов, видеть всю структурную взаимосвязь файлов между собой, и иметь в наличии "супер скрипт" корректирующий содержание каждого htm шаблона, перед его размещением в соответствующие каталоги.
Бывают ситуации, когда такой "супер скрипт" проще изготовить, чем промежуточный, не говоря о том, что это даёт конечных результат, что упрощает вопрошающему задачу. Провидцем быть не надо, Имена легко запомнить в коллекции. Правка шаблона может оказаться легче, чем до сих пор неясная рассортировка каталогов. Я предлагаю расписать в новой теме задачу, а там я уже решу, что легче.

#18:  Author: shveicarLocation: Россия Москва PostPosted: Tue May 08, 2012 18:43
    —
Flasher wrote:
Теперь всё изменилось?

Нет, просто проблема развернута глубже, - найти каталоги с полным "комплектом" (наличие в каталоге всех типов файлов при условии нахождения в них файлов htm,html) и переместить/копировать их, вместе со всем содержимым на другую панель.
Quote:
Смотря как задавать счётчик

Если имена будут выглядеть так 1_11..[a-z](1).расширение - то нормально.
Quote:
Разбивать или дублировать?

Пусть будет разбивка.
Quote:
Правка шаблона может оказаться легче, чем до сих пор неясная рассортировка каталогов
Даже если предположить, что возможно создать скрипт, - для замены блоков текста в тегах,(с поддержкой регулярных выражений) в каждом из перечисленных в файле списке имен, и блоки текста будут браться из отдельного текстового файла. Всё равно, придется изначально обнаружить каталоги, - где они (htm файлы) отсутствуют. Отдельным скриптом, - воссоздать в них файлы пустышки, с именами родительских каталогов, загнать их имена - в файл список для первого скрипта, и только затем, - раскидать модифицированные htm(html) шаблоны с заменой файлов пустышек. (это всего лишь, один из возможных вариантов).
Об этом, Я не могу просить, поскольку, некоторые задания (скрипт для замены блоков текста), не имеют прямого отношения к total commander...

#19:  Author: FlasherLocation: Москва PostPosted: Tue May 08, 2012 19:01
    —
shveicar wrote:
Нет, просто проблема развернута глубже, - найти каталоги с полным "комплектом" (наличие в каталоге всех типов файлов при условии нахождения в них файлов htm,html) и переместить/копировать их, вместе со всем содержимым на другую панель.
Брррр... Если речь идёт о полном комплекте, то и так понятно, что html там фигурируют. Отсутствие любого из расширений уже исключает обработку. И не со всем содержимым, а только с файлами из корней. Или опять всё поменялось?


shveicar wrote:
сё равно, придется изначально обнаружить каталоги, - где они (htm файлы) отсутствуют.
И что? С этим никогда проблем не было.
shveicar wrote:
Отдельным скриптом, - воссоздать в них файлы пустышки
Зачем отдельным? Confused
shveicar wrote:
Об этом, Я не могу просить, поскольку, некоторые задания (скрипт для замены блоков текста), не имеют прямого отношения к total commander...
Обработка выделенных элементов - уже по сути касается файлового менеджера. А что будет в скрипте делаться дополнительно - дело третье.

#20:  Author: shveicarLocation: Россия Москва PostPosted: Tue May 08, 2012 19:58
    —
Flasher wrote:
Отсутствие любого из расширений уже исключает обработку. И не со всем содержимым, а только с файлами из корней. Или опять всё поменялось?

Все правильно, больше ничего меняться не будет.
Извиняюсь, за неточную формулировку.
С остальными вариантами, относящимися к созданию дополнительных скриптов, нужно будет еще раз все продумать.
Спасибо за помощь.

#21:  Author: FlasherLocation: Москва PostPosted: Tue May 08, 2012 20:02
    —
shveicar wrote:
С остальными вариантами, относящимися к созданию дополнительных скриптов, нужно будет еще раз все продумать.
Только не скриптов, а скрипта. Жду тогда формулировки. А там решим.

#22:  Author: l-Roon PostPosted: Fri Dec 27, 2013 17:31
    —
В общем каталоге 'Музыка' имеется несколько (несколько сотен) папок, каждая из которых содержит ряд аудио-файлов. В одной папке могут быть ogg, в другой mp3, в третьей flac, в чётвертой ape и т.д. Но в каждой из папок содержатся аудио-файлы только одного формата. Кроме этих файлов каждая папка содержит информацию об альбоме в виде файлов txt, doc, jpeg, pdf.
Вопрос: возможно ли задать условия перемещения таким образом, чтобы папки с mp3 (например) перемещались в общий каталог 'MP3' целиком, то есть, со всем содержимым (как с собственно музыкой, так и с дополнителными файлами)?

#23:  Author: FlasherLocation: Москва PostPosted: Fri Dec 27, 2013 19:44
    —
l-Roon wrote:
возможно ли задать условия перемещения таким образом ...
Конечно, возможно. Достаточно в каждой папке проверять число отфильтрованных по расширению файлов, если их больше 1, то перемещать в папку с именем найденного расширения.

#24:  Author: l-Roon PostPosted: Sat Dec 28, 2013 01:54
    —
Flasher, а Вы не могли бы подсказать -- как именно это сделать?

Upd: вопрос снят, на другом сайте подсказали готовый скрипт:

Code:
@ECHO OFF
SET R="0"
FOR /R %%A IN ("*.mp3") DO (
call :1 "%%~dpA"
)
goto :eof
:1
SET R=%1
move /Y "%R:~1,-2%" "d:\music\mp3"

#25:  Author: Tol!kLocation: Арзамас PostPosted: Sat Dec 28, 2013 19:32
    —
Code:
@echo off &setlocal enableextensions
::   http://forum.wincmd.ru/viewtopic.php?p=104462#104462
::   Параметры:   "%WL"
set Ext=MP3 OGG FLAC APE AAC M4A WMA

for /f "delims=" %%d in ('type "%~1"') do call :E "%%d"
goto :eof

:E
title %1
pushd %1
for %%e in (%Ext%) do (
   for /f "delims=" %%f in ('dir /b/a-d *.%%e 2^>nul') do (
      cd .. &md %%e 2>nul
      move /y "%~1." %%e &&goto :eof
   )
)
goto :eof

#26:  Author: AmeKs PostPosted: Sat May 14, 2016 16:36
    —
А можно как-то осуществлять следующую операцию? При перемещении папки/файла проверяется, есть ли одноименный файл с разрешением inf в каталоге, где находится наша папка/файл -> если есть, то перемещать и его тоже.
Например, перемещаем файл abc.exe
если в каталоге есть abc.inf, то перемещаем и его тоже.

#27:  Author: FlasherLocation: Москва PostPosted: Mon May 16, 2016 17:11
    —
AmeKs >>>
Code:
'================================= VBS ==================================
' Перемещение выбранных файлов совместно с находящимися в том же каталоге
' и имеющими одно базовое имя в соответствии с заданной маской расширений
'
' Условие:   путь запуска - пустой
'
' Параметры: %WL "<путь назначения>" <маска расширений>
' Пример:    %WL "%T" *.inf;*.ini
'========================================================================
With WScript.Arguments
  If .Count = 0 Then WScript.Quit
  List = .Item(0) : Path = .Item(1) : Exts = .Item(2)
End With : Set FSO = CreateObject("Scripting.FileSystemObject")
Set Shell = CreateObject("Shell.Application")
Set Items = Shell.NameSpace(FSO.GetAbsolutePathName("")).Items

Set Path = Shell.NameSpace(Path)
With FSO.OpenTextFile(List,,,-1)
  Do : F = Trim(.ReadLine)
    Items.Filter 73952, FSO.GetFileName(F) & ";" &_
    Replace(Exts,  "*", FSO.GetBaseName(F))
    Path.MoveHere Items, 8
  Loop Until .AtEndOfStream : .Close
End With


Last edited by Flasher on Fri May 20, 2016 10:24; edited 2 times in total

#28:  Author: AmeKs PostPosted: Mon May 16, 2016 21:48
    —
Flasher Спасибо большое, работает. Но хотелось бы, чтобы в случае отсутствия одноименного файла, наш исходный файл перемещался. А при нынешнем раскладе ничего не происходит. Буду очень признателен, если скрипт будет работать аналогично и для папок.
Впринципе, моя цель - хранить некоторые комментарии вместо файла descript.ion в отдельных файлах, которые бы перемещались при перемещении файлов/каталогов. Как-то так. Confused

#29:  Author: FlasherLocation: Москва PostPosted: Tue May 17, 2016 00:33
    —
AmeKs wrote:
Буду очень признателен, если скрипт будет работать аналогично и для папок.
Так в папках, как правило, расширения не задаются. Question Ладно, сделал. Но проблемой будет то, что все выбранные папки, где в имени есть точка, будут также перемещены.
AmeKs wrote:
вместо файла descript.ion
Из-за Юникода, поди?

#30:  Author: sa PostPosted: Thu May 19, 2016 15:12
    —
Flasher wrote:
Но проблемой будет то, что все выбранные папки, где в имени есть точка, будут также перемещены.

Из-за этого обстоятельства не хотелось бы делать исключение. Пусть перемещаются, коли выбраны!



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page Previous  1, 2, 3  Next  :| |:
Page 2 of 3

Powered by phpBB © 2001, 2005 phpBB Group