|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с текстовыми файлами вместо файлов |
|
CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с текстовыми файлами вместо файлов
|
Новый участник Сообщения: 16 |
Есть папка с названием "Структура1" в ней много файлов и подпапок. Файлы и подпапки которые находятся в ней содержат имена из: знаков, русских, английских букв. Есть еще вторая пустая папка с названием "Структура2". Нужно скопировать структуру всех подпапок, которые находятся в папке "Структура1" в папку "Структура2" но без файлов которые в ней находятся, а вместо файлов в ту же папку "Структура2" создать пустые txt-файлы с их именами и плюс с датой когда был создан тот или иной файл.
До батника вид такой: Структура1: Документ.doc, Фото.jpg ; Подпапка2: Программа.exe, Текст.txt ; Подпапка3: MP3.mp3, MP4.mp4, AVI.avi Структура2: После выполнения батника должен вид такой быть: Структура1: Документ.doc, Фото.jpg ; Подпапка2: Программа.exe, Текст.txt ; Подпапка3: MP3.mp3, MP4.mp4, AVI.avi Структура2: Документ - 02.04.2020-12.05.34.txt, Фото - 14.03.2020-17.14.45.txt ; Подпапка2: Программа - 21.05.2020-12.05.34.txt, Текст - 02.02.2020-15.05.43.txt ; Подпапка3: MP3 - 02.06.2020-12.05.34.txt, MP4 - 02.06.2020-12.05.34.txt, AVI - 02.06.2020-12.05.34.txt Все что получилось у меня это создать батник который сохраняет структуру подпапок в текстовый файл, а потом запуском еще вторым батником из ранее сохраненного текста структуры подпапок восстанавливать структуру т.е. таким карявым методом как бы создавать копию структуры подпапок, правда для это мне приходится менять внешний жесткий диск, так как все скопированные пути на восстановление в тестовом файле начинаются с него (папка "Структура1" для примера находится на внешнем жестком диске). И после этого я уже с внешнего жесткого диска копирую структуру подпапок в нужную мне папку, но это уж совсем неудобно. Переписать пути с помощью батника так, чтобы подпапки восстановились в конкретную папку т.е. в папку "Структура2" не знаю как. На втором шаге, я нашел в интернете: "создание пустых txt-файлов с именами содержимого папки с помощью батника", но батник создает текстовые файлы с именами файлов из одной папки в которой запустился, а в подпапках нет. Тут нужно еще чтобы текстовые файлы создавались не в той папке откуда берутся имена ("Структура1"), а чтобы текстовые файлы создавались в папке "Структура2" после того как туда скопируется структура пустых подпапок. Я совсем запутался в кодах батника. Помогите пожалуйста! Народ, кто в этом разбирается?! как это можно реализовать в батнике? |
|
Отправлено: 13:10, 02-06-2020 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Да, именно в Akelpad я и сделал, все как нужно! Всем огромное спасибо за помощь! megaloman, твой код сотворил чудо! СПАСИБО!!!
![]() Тему уже я конечно закрыл, так как все работает так как надо, но дабы еще одну похожую тему не создавать у меня еще вопрос. А как можно еще сделать в этом же батнике чтобы были в конце и секунды? ![]() |
Отправлено: 19:32, 02-06-2020 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Serezha373737:
|
|
Отправлено: 19:52, 02-06-2020 | #12 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать можно и так, главное чтобы было!
![]() ну так как там добавить секунды еще в конце?) |
Отправлено: 20:02, 02-06-2020 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Serezha373737, Вы про чей код?
|
Отправлено: 00:11, 03-06-2020 | #14 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Serezha373737, Это эстетствующий каприз? За секунды в CMD придётся заплатить долгим временем выполнения. Разве кто из спецов PowerShell заинтересуется. И, опять же, возможны пропуски файлов с необрабатываемыми в CMD символами в именах.
@Echo Off cls Set "BoxIn=D:\Мой контент" Set "BoxOut=Z:\Box_Out" If Not "%BoxIn:~-1%"=="\" Set "BoxIn=%BoxIn%\" If Not "%BoxOut:~-1%"=="\" Set "BoxOut=%BoxOut%\" FOR /F "tokens=1* delims=:" %%i IN ("%BoxIn%") DO Set "Drive=%%i:" &Set "PathLike=%%j" &Call Set "PathLike=%%PathLike:\=\\%%" >"%Tmp%\%~nx0.tmp" wmic datafile Where "Drive='%Drive%' And Path Like '%PathLike%%%'" get 'Last Modified', Name /Format:CSV Xcopy "%BoxIn%*.*" "%BoxOut%" /T /E FOR /F "usebackq tokens=2* delims=," %%i IN (`More "%Tmp%\%~nx0.tmp"`) DO Call :MyFile "%%i" "%%j" Del "%Tmp%\%~nx0.tmp" pause Exit /B :MyFile If Not Exist %2 Exit /B 1 Set "FileIn=%~2" Set "D=%~1" Set "D=%D:~6,2%.%D:~4,2%.%D:~0,4%_%D:~8,2%.%D:~10,2%.%D:~12,2%.txt Call Set "FileOut=%%FileIn:%BoxIn%=%BoxOut%%%-%D%" >"%FileOut%" cd. Exit /B |
------- Отправлено: 11:24, 03-06-2020 | #15 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Fors1k, 03-06-2020 в 18:51. Отправлено: 15:01, 03-06-2020 | #16 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Iska, Вы про чей код?
Iska, почитайте ВНИМАТЕЛЬНЕЕ мои последние сообщения. Первый код был Powershell, а второй код bat. Или вы не знаете что такое "БАТНИК" ?! Слова: " megaloman, твой код сотворил чудо!" "А как можно еще сделать В ЭТОМ ЖЕ БАТНИКЕ чтобы были в конце и секунды?" ...тут речь идет о bat. На данный момент Iska, код bat только один - от megaloman! ............................................................................... megaloman, Спасибо за код! Теперь уже с секундами! И Да! Есть каприз небольшой ![]() ![]() |
Отправлено: 15:10, 03-06-2020 | #17 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Цитата Serezha373737:
|
|
Последний раз редактировалось Fors1k, 04-06-2020 в 03:18. Отправлено: 15:17, 03-06-2020 | #18 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Fors1k_m, Желаемый результат я НЕ получил! Ваш код Не работает! При выполнении, показывает черное окно и ничего не происходит! Долгое время ждал когда выполнит, но опять ничего.
.................................. Fors1k_m, логика в том что я делаю программу, которая будет выполняется в загрузочной операционной системе т.е. в оперативной памяти. В загрузочной операционной системе я вырезаю некоторые НЕКРИТИЧНЫЕ программы, службы и утилиты, чтобы освободилось больше оперативной памяти для разных операций, так как вся операционная система находится полностью в оперативной памяти. И поэтому я не вижу смысла только для этого загружать powershell и другие программы, чтобы они там висели в памяти и потребляли ресурсы ОЗУ. |
Отправлено: 15:42, 03-06-2020 | #19 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Serezha373737, с cmd с символами будут проблемы. Как вариант, можно подумать о vbs или js, если Вас такое устроит.
|
------- Отправлено: 15:49, 03-06-2020 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Перенос файлов и папок с сохранением структуры | Kenwood | Скриптовые языки администрирования Windows | 3 | 20-09-2019 14:54 | |
VBS/WSH/JS - Скрипт для забора файлов и папок (с сохр. структуры) из неск. сетевых папок в одну л. | DjBoBo | Скриптовые языки администрирования Windows | 0 | 19-07-2016 16:30 | |
CMD/BAT - [решено] работа с текстовыми файлами | YuKar | Скриптовые языки администрирования Windows | 4 | 19-07-2012 17:10 | |
CMD/BAT - работа с 2 текстовыми файлами, именами файлов и всё в цикле | Тишина | Скриптовые языки администрирования Windows | 4 | 15-07-2012 20:26 | |
CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с помощью командного файла | Vadikan | Скриптовые языки администрирования Windows | 8 | 22-07-2009 01:56 |
|