Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 6
1

Создание пробелов, интервала между каталогами, при создании списка файлов в каталогах и подкаталогах

14.07.2019, 06:48. Показов 1394. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Все привет!
Есть батник с помощью которого я создаю опись каталогов, мне его помогли довести до ума в соседней ветке.

Windows Batch file
1
2
3
4
5
6
7
@echo off
chcp 1251
(for /f delims^= %%i in ('dir /s /b /a-d') do (
set "file=%%i"
call echo %%file:%cd%=%%
)) > Список.doc
start список.doc
По окончании он выводит вот такой список файлов

\А\Абвов Алексей\Сталкер-2\Сталкер-2 1.txt
\А\Абвов Алексей\Сталкер-2\Сталкер-2 2.txt
\А\Абвов Алексей\Сталкер-2\Сталкер-2 3.txt
\А\Абвов Алексей\Сталкер-2\Сталкер-2 4.txt
\А\Абвов Алексей\Третий шанс\1 Агент 000.txt
\А\Абвов Алексей\Третий шанс\2 Прораб стройки светлого будущего.txt
\А\Абвов Алексей\Цифровая крепость\1 Цифровая крепость.txt
\А\Абвов Алексей\Цифровая крепость\2 Цифровая крепость.txt
\А\Абвов Алексей\Цифровая крепость\3 Цифровая крепость.txt
\А\Абвов Алексей\Цифровая крепость\4 Цифровая крепость.txt
\А\Абвов Алексей\Черная полоса\Чёрная полоса 1.txt
\А\Абвов Алексей\Черная полоса\Черная полоса 2.txt
\А\Абвов Алексей\Что нас не убивает\1 Что нас не убивает.txt
\А\Абвов Алексей\Что нас не убивает\2 Испытание силой.txt
\А\Абдуллаев Чингиз\Дронго\001. Голубые ангелы .txt
\А\Абдуллаев Чингиз\Дронго\002. Почти невероятное убийство.txt
\А\Абдуллаев Чингиз\Дронго\003. Охота на человека.txt
\А\Абдуллаев Чингиз\Дронго\004. Игры профессионалов.txt
\А\Абдуллаев Чингиз\Дронго\005. В ожидании апокалипсиса.txt
\А\Абдуллаев Чингиз\Дронго\006. Правило профессионалов.txt
\А\Абдуллаев Чингиз\Дронго\007. Выбери себе смерть.txt
\А\Абдуллаев Чингиз\Дронго\008. Правила логики.txt
\А\Абдуллаев Чингиз\Дронго\009. Закон негодяев.txt
\А\Абдуллаев Чингиз\Дронго\010. Кредо негодяев.txt
\А\Абдуллаев Чингиз\Дронго\011. Совесть негодяев.txt

Как видите все в одной куче.
Подскажите, пожалуйста, возможно ли подредактировать этот батник. чтобы он делал интервалы между разными каталогами?
Чтоб было примерно так
\А\Абвов Алексей\Сталкер-2\Сталкер-2 1.txt
\А\Абвов Алексей\Сталкер-2\Сталкер-2 2.txt
\А\Абвов Алексей\Сталкер-2\Сталкер-2 3.txt
\А\Абвов Алексей\Сталкер-2\Сталкер-2 4.txt

\А\Абвов Алексей\Третий шанс\1 Агент 000.txt
\А\Абвов Алексей\Третий шанс\2 Прораб стройки светлого будущего.txt

\А\Абвов Алексей\Цифровая крепость\1 Цифровая крепость.txt
\А\Абвов Алексей\Цифровая крепость\2 Цифровая крепость.txt
\А\Абвов Алексей\Цифровая крепость\3 Цифровая крепость.txt
\А\Абвов Алексей\Цифровая крепость\4 Цифровая крепость.txt

\А\Абвов Алексей\Черная полоса\Чёрная полоса 1.txt
\А\Абвов Алексей\Черная полоса\Черная полоса 2.txt

\А\Абвов Алексей\Что нас не убивает\1 Что нас не убивает.txt
\А\Абвов Алексей\Что нас не убивает\2 Испытание силой.txt

\А\Абдуллаев Чингиз\Дронго\001. Голубые ангелы .txt
\А\Абдуллаев Чингиз\Дронго\002. Почти невероятное убийство.txt
\А\Абдуллаев Чингиз\Дронго\003. Охота на человека.txt
\А\Абдуллаев Чингиз\Дронго\004. Игры профессионалов.txt
\А\Абдуллаев Чингиз\Дронго\005. В ожидании апокалипсиса.txt
\А\Абдуллаев Чингиз\Дронго\006. Правило профессионалов.txt
\А\Абдуллаев Чингиз\Дронго\007. Выбери себе смерть.txt
\А\Абдуллаев Чингиз\Дронго\008. Правила логики.txt
\А\Абдуллаев Чингиз\Дронго\009. Закон негодяев.txt
\А\Абдуллаев Чингиз\Дронго\010. Кредо негодяев.txt
\А\Абдуллаев Чингиз\Дронго\011. Совесть негодяев.txt
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2019, 06:48
Ответы с готовыми решениями:

Поиск файлов в каталогах и подкаталогах
Люди у меня есть своя база полноценных текстовых документов с каким-то названием. Нужено...

Поиск файлов в каталогах и подкаталогах
Как это можно реализовать? :)

Удаление файлов нулевого размера в каталогах и подкаталогах
Добрый вечер. Нужна помощь в корректировке маленького скрипта: @Echo Off SetLocal For /F...

Segmentation fault(core dumped) в программе поиска одинаковых файлов в 2-х каталогах и их подкаталогах
Здравствуйте, сейчас делал задание, суть которого в том, чтобы в двух каталогах и их подкаталогах...

9
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
15.07.2019, 12:22 2
PowerShell
1
gci *.txt -rec | group Directory |% { $_.group.fullname; "`n" }
0
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 6
15.07.2019, 19:10  [ТС] 3
это надо добавить в мой батник? Какой строкой?

Добавлено через 33 минуты
разобрался! Все так просто, оказывается. Спасибо большое!!
Подскажи, пожалуйста. как убрать путь до файла до буквы "А"

E:\Папа\YandexDisk\Библиотека\Книги\А\Абвов Алексей\По следам алхимика\По следам Алхимика 1.txt
E:\Папа\YandexDisk\Библиотека\Книги\А\Абвов Алексей\По следам алхимика\По следам Алхимика 2.txt
E:\Папа\YandexDisk\Библиотека\Книги\А\Абвов Алексей\По следам алхимика\По следам Алхимика 3.txt


Чтоб в списке осталось так:
А\Абвов Алексей\По следам алхимика\По следам Алхимика 1.txt

Добавлено через 54 минуты
немного изменил твою команду.

gci *.txt -rec | group Directory |% { $_.group.fullname; "`n" } | Out-File -FilePath "Путь до папки\Название.txt"

теперь он не только показывает, но и сохраняет в нужную мне папку. Но вот решить ту проблему у меня не получается
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
17.07.2019, 00:20 4
PowerShell
1
2
3
$c = [System.IO.Path]::DirectorySeparatorChar 
 
gci *.txt -rec | group Directory |% { $_.group.fullname.foreach({$_ -replace "^(.*$c)(?=(\p{L})$c\2)",$null}); "`n" }
Добавлено через 1 час 55 минут
так культурнее:
PowerShell
1
2
3
function showpath($path) { $c=[System.IO.Path]::DirectorySeparatorChar; $path -replace "^(.*$c)(?=(\p{L})$c\2)",$null }
 
gci *.txt -rec | group Directory |% { $_.group.fullname.foreach{showpath($_)}; "`n" }
1
Любознательный
5672 / 1687 / 314
Регистрация: 10.03.2016
Сообщений: 3,843
17.07.2019, 08:42 5
Цитата Сообщение от bidstrup Посмотреть сообщение
так культурнее:
культурнее, но явно не проверено...
Цитата Сообщение от bidstrup Посмотреть сообщение
$c=[System.IO.Path]:irectorySeparatorChar; $path -replace "^(.*$c)(?=(\p{L})$c\2)",$null
- это проверялось на работоспособность?
надо бы удвоить, либо заэскейпить [regex]::escape($c)
1
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
17.07.2019, 14:43 6
Лучший ответ Сообщение было отмечено YuS_2 как решение

Решение

Цитата Сообщение от YuS_2 Посмотреть сообщение
это проверялось на работоспособность?
Под Windows нет, конечно. Обратная палка сыграла злую шутку ?

Добавлено через 39 минут
PowerShell
1
2
function showpath($path) { $c=[System.IO.Path]::DirectorySeparatorChar; $path -replace "^(.*\${c})(?=(\p{L})\${c}\2)",$null }
gci *.txt -rec | group Directory |% { $_.group.fullname.foreach{showpath($_)}; "`n" }
1
YuS_2
17.07.2019, 15:46
  #7

Не по теме:

Цитата Сообщение от bidstrup Посмотреть сообщение
Под Windows нет, конечно.
Действительно, зачем под Windows проверять, решение опубликованное в разделе про windows :) шутка...
Но это даже не в windows проблема, это ведь регэкспы так работают, что "обратные палки" необходимо экранировать... впрочем, и не под виндой должно быть то же самое, ибо... ибо... :)

0
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 6
17.07.2019, 17:24  [ТС] 8
Спасибо большое за помощь!! Все работает как часики! немножко изменил, добавил в конце команду Out-File -FilePath "Путь до папки\Название.txt" чтобы он готовый результат записывал в файл
Еще раз огромное спасибо!!
0
418 / 178 / 27
Регистрация: 11.03.2018
Сообщений: 764
17.07.2019, 17:29 9

Не по теме:

Цитата Сообщение от YuS_2 Посмотреть сообщение
Действительно, зачем под Windows проверять
Я не покупал ни Windows 7, ни Windows 8, ни Windows 10; установлен только мой старенький XP
под virtualbox, под ним чаще всего бессмысленно что-либо проверять.



Цитата Сообщение от YuS_2 Посмотреть сообщение
прочем, и не под виндой должно быть то же самое,
нет не то же самое, под *nix [System.IO.Path]::DirectorySeparatorChar вернёт прямой
слэш, поэтому всё работало и без экранирования. Опять моя ошибка, да.
2
YuS_2
17.07.2019, 19:20     Создание пробелов, интервала между каталогами, при создании списка файлов в каталогах и подкаталогах
  #10

Не по теме:

Цитата Сообщение от bidstrup Посмотреть сообщение
вернёт прямой
слэш, поэтому всё работало и без экранирования. Опять моя ошибка, да.
а, вон оно чо, тоды ой, естественно... прямой слэш - не помеха...
а ошибка - мелочь... не ошибается ведь только тот, кто ничего не делает.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.07.2019, 19:20

Одинаковые файлы в каталогах и подкаталогах
Помогите пожалуйста реализовать: Задача Найти все группы одинаковых файлов ненулевой длины в...

Подключить все файлы, которые находятся в каталогах и подкаталогах
Добрый день.Подскажите,как написать рекурсивную функцию для подключения всех классов каталоге core...

Запрет в заданных каталогах на создание файлов
Нужно запретить в заданных каталогах создавать новые файлы, копировать или перемещать в них уже...

Найти совпадающие по содержимому файлы в двух заданных каталогах и их подкаталогах
Здравствуйте, необходимо найти совпадающие по содержимому файлы в двух заданных каталогах...

Поиск строки с заменой в файлах, расположенных в различных каталогах и подкаталогах
Доброго времени суток! жизнь такую задачу поставила: есть каталог с подкаталогами, в них...

Вывод списка имён каталогов и поиск в этих каталогах файлов с определёнными расширениями
Всем привет, прошу прощения , но в программировании я полный ноль, нужной мне инфы не нашел ( может...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru