Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с текстовыми файлами вместо файлов

Закрытая тема
Настройки темы
CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с текстовыми файлами вместо файлов

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Есть папка с названием "Структура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

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Powershell:
Код: Выделить весь код
$in = "C:\temp\Структура1"
$out = "C:\temp\Структура2"

robocopy "$in" "$out" /e /create
dir "$out" -File -Recurse |% {
Rename-Item "$($_.FullName)" -NewName ($_.BaseName + $_.creationtime.tostring(" - dd.MM.yyyy-HH.mm.ss") + '.txt')
}

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:28, 02-06-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не совсем то, что нужно. Конечно он структуру подпапок и файлов с их именами он скопировал, но можно как то сделать так чтобы в имени еще была дата и время изменения файла плюс расширение, например чтобы скопированные файлы в своем имени выглядели вот так: Апельсин.jpg - 02.06.2020-14.03.01

Отправлено: 14:49, 02-06-2020 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Serezha373737, это Powershell, а не CMD, у вас вторая часть скрипта не отрабатывает.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:03, 02-06-2020 | #4


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


DJ Mogarych, да у меня видимо действительно вторая часть скрипта не отрабатывает. В Powershell я не очень разбираюсь, если сможете, то помогите пожалуйста исправить.

Отправлено: 16:14, 02-06-2020 | #5


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6491
Благодарности: 1465

Профиль | Отправить PM | Цитировать


Надо сохранить этот код в файл с расширением .ps1 и запускать его правой кнопкой мышки - "Выполнить с помощью Powershell".

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 16:25, 02-06-2020 | #6


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Выполнил: Надо сохранить этот код в файл с расширением .ps1 и запускать его правой кнопкой мышки - "Выполнить с помощью Powershell". Теперь совсем ничего не создает..даже подпапки! Которые ранее создавались если я просто копировал код и вставлял в окно Powershell. При запуске открывается на доли секунды окно Powershell: в нем только удалось разглядеть за доли секунды красным цветом "не удалось загрузить файл

Отправлено: 16:53, 02-06-2020 | #7


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1171
Благодарности: 487

Профиль | Отправить PM | Цитировать


Цитата Serezha373737:
При запуске открывается на доли секунды окно Powershell: в нем только удалось разглядеть за доли секунды красным цветом "не удалось загрузить файл »
http://forum.oszone.net/thread-292023.html

-------
scio me nihil scire. Ѫ


Отправлено: 18:46, 02-06-2020 | #8


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


Serezha373737, Бат-файл. Сохранить в 866 кодировке. Ввозможны пропуски файлов с спецсимволами.
Код: Выделить весь код
@Echo Off
cls
	Set "BoxIn=D:\Мой контент"
	Set "BoxOut=Z:\Box_Out"

	Xcopy "%BoxIn%\*.*" "%BoxOut%\" /T /E
	For /F "usebackq delims=" %%f In (`Xcopy "%BoxIn%" "%BoxOut%" /S /Y /F /L`) Do (
		Set "Out=%%f"
		Call :TxtMake "%%Out: -> =" "%%"
	)
pause
Exit /B 

:TxtMake
	If Not Exist %1 Exit /b 1
	Set "Dt=%~t1"
	Set "Dt=%Dt: =-%"
	Set "Dt=%Dt::=.%"
 	>"%~2-%Dt%.txt" Cd.
Exit /B 0

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:53, 02-06-2020 | #9


Пользователь


Сообщения: 111
Благодарности: 16

Профиль | Цитировать


Цитата megaloman:
Сохранить в 866 кодировке »
Это умеет Akelpad.

Отправлено: 19:20, 02-06-2020 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Сохранение структуры папок и ее воссоздание с текстовыми файлами вместо файлов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Перенос файлов и папок с сохранением структуры 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




 
Переход