Как скопировать структуру каталогов с заданной вложенностью?

Обсуждение Total Commander. Установка, использование, настройка, решение проблем, скрытые функции. Обсуждение новых версий.

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

Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

GGS писал(а):почему-то работает только с одной папкой
XCOPY не умеет работать с перечнем:
XCOPY source [destination]

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

TOTALCMD#BAR#DATA
%ComSpec% /c call "%COMMANDER_PATH%\cmd\copytree.cmd"
%F "%T"
WCMICONS.DLL,2
Копировать структуру выделенных каталогов

1
-1
copytree.cmd

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

@echo off &chcp 1251 >nul
for /f "delims=" %%a in (%1) do echo f| xcopy /i /t/e "%%a." "%~2%%a."
Последний раз редактировалось Tol!k Сб авг 28, 2010 16:00, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Вахмурка писал(а):не создает директории уровня 2 и ниже
>>
andry252 писал(а):мне конечно всю структуру нежелательно, потом все-равно надо будет удалять в ручную. Нужны только имена корневых каталогов.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

andry252 писал(а):мне конечно всю структуру нежелательно, потом все-равно надо будет удалять в ручную. Нужны только имена корневых каталогов.
Тады - ой!

Вариант без использования %S

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

TOTALCMD#BAR#DATA
%ComSpec% /c call "%COMMANDER_PATH%\cmd\rootonly.cmd"
%F "%T"
WCMICONS.DLL,48
Создать папки с именами выделенных папок/файлов в каталоге назначения

1
-1
rootonly.cmd

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

@echo off &chcp 1251 >nul
for /f "delims=" %%a in (%1) do md "%~2%%a"
Последний раз редактировалось Tol!k Сб авг 28, 2010 15:58, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k
Твой вариант, на сколько я понимаю, подойдёт только для тех у кого реестр не правился в ветке HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage, иначе выходят крякозябры с кириллицей.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Flasher
Ничего не понимаю. Работало же с кнопки.

Переделал с исп-ем батников.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

Вот так вроде бы работает с кнопки.

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

TOTALCMD#BAR#DATA
%ComSpec% /c
for /f "delims=" %%a in (%d) do @echo f| xcopy /i /t/e "%%a." "%T%%a."
WCMICONS.DLL,2
Копировать структуру выделенных каталогов

1
-1

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

TOTALCMD#BAR#DATA
%ComSpec% /c
for /f "delims=" %%a in (%d) do @md "%T%%a"
WCMICONS.DLL,48
Создать папки с именами выделенных папок/файлов в каталоге назначения

1
-1
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

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

TOTALCMD#BAR#DATA 
%ComSpec% /c 
For /f "tokens=*" %%i In ('dir /b /a:D %P') Do Md "%T\%%i"
WCMICONS.DLL,48 
Воспроизвести структуру текущей папки (1 уровень)  в папке назначения 

1 
-1 
?
Последний раз редактировалось Serge Yolkin Сб авг 28, 2010 16:39, всего редактировалось 1 раз.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Tol!k
Ага, так правильно.
Думаю как теперь сделать, чтобы создавались каталоги в противоположной панели с именами только папок первого уровня без выделения. в wsh вроде не сложно, но мне в cmd бы.. В общем, помощь требуется.
Serge Yolkin
Сообщения: 664
Зарегистрирован: Сб июл 25, 2009 11:12

Сообщение Serge Yolkin »

Кажется, ответил раньше, чем был задан вопрос. Телепат...
Только под XP не тестил - нет под рукой. Может, кавычек придется добавить.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Serge Yolkin
Да, забавно получилось.) На XP работает. :)
laburj
Сообщения: 186
Зарегистрирован: Пн мар 07, 2005 07:04

Сообщение laburj »

Tol!k писал(а):for /f "delims=" %%a in (%d) do @echo f| xcopy /i /t/e "%%a." "%T%%a."
for /f "delims=" %%a in (%d) do @md "%T%%a"
и в 1ом и во 2ом случаях в противоположной панели создаются папки с названиями в формате 8.3.
Прим.
Atomic Alarm Clock -> ATOMIC~1
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

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

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\FileSystem]
"NtfsDisable8dot3NameCreation"=dword:00000001
:?:
laburj
Сообщения: 186
Зарегистрирован: Пн мар 07, 2005 07:04

Сообщение laburj »

Tol!k, значение параметра было равно нулю, поставил 1, перезагрузил систему, результатов не дало.
Есть относительно похожая кнопка, вот она у меня работает как надо.
Аватара пользователя
Tol!k
Сообщения: 1727
Зарегистрирован: Вт апр 01, 2008 20:02
Откуда: Арзамас

Сообщение Tol!k »

[telepat mode]
Диск-источник отформатирован в FAT32
[/telepat mode]
laburj
Сообщения: 186
Зарегистрирован: Пн мар 07, 2005 07:04

Сообщение laburj »

Tol!k писал(а):[telepat mode]
)) нет, все разделы в NTFS.
Ответить