ToRoot

Название ToRoot
Имя файла (*.txt) ToRoot.txt
Описание Снижает уровень вложенности всех файлов и директорий в текущей директории
Автор Вахмурка
Параметры ("%P")
Вызываемые плагины file, win, tc
Иконка
Версия 1.0
Дата обновления 27.01.2006
Вызываемая утилита Xxcopy
local Path = file.folder(arg(1))
Path = file.folder(Path)
local hwnd = win.handle("c=TTOTAL_CMD")
local List, Count, Dest, Folder 

for(1)
	List = file.listfiles(Path, "2")
	Count = line(List, 0)
	if(Count < 2) do
		Folder = ifelse(Dest == "", remove(arg(1), -1), Dest)
		Dest = Path
		Path = file.folder(Path)
	else
		break
	endif
endfor

if(Dest == "")
	quit

Path = arg(1) ++ "*.* " ++ Dest ++ " /s /rc /yy"
file.runwait(0, "путь\xxcopy.exe", Path, "", "hide")
tc.cd(hwnd, Dest)
wait 1
file.delete(Folder)
win.postmessage(hwnd, 0x400+51, 540, 0)

Комментарии:

Имеется следующая структура директорий:

Folder1
Folder2
	Folder3
		Folder4
			Folder5
				Folder6
				File1
				File2
File3

Иными словами, есть цепочка вложенных директорий, каждая из которых содержит только одну директорию. В нашем примере это цепочка Folder2-Folder3-Folder4. Скрипт перемещает все файлы из текущей директории (подчеркнута) в директорию Folder3, чтобы сохранить логику вложенности, после чего удаляет все пустые поддиректории. Результат будет следующим:

Folder1
Folder2
	Folder3
		Folder6
		File1
		File2
File3

Иными словами, если в полном пути (в нашем случае Folder2\Folder3\Folder4\Folder5) есть такие директории, которые содержат только одну поддиректорию, все они (за исключением первой) будут удалены и путь превратится в Folder2\Folder3. Можно сказать, что скрипт ликвидирует "избыточную вложенность".


На главную Все о Total Commander PowerPro PowerPro & Total Commander