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

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

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

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

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)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.07.2019, 06:48
Ответы с готовыми решениями:

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

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

Удаление файлов нулевого размера в каталогах и подкаталогах
Добрый вечер. Нужна помощь в корректировке маленького скрипта: @Echo Off SetLocal For /F "Tokens=*" %%A In ('Dir /B...

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

Добавлено через 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
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
17.07.2019, 00:20
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
Любознательный
 Аватар для YuS_2
7405 / 2255 / 360
Регистрация: 10.03.2016
Сообщений: 5,216
17.07.2019, 08:42
Цитата Сообщение от bidstrup Посмотреть сообщение
так культурнее:
культурнее, но явно не проверено...
Цитата Сообщение от bidstrup Посмотреть сообщение
$c=[System.IO.Path]:irectorySeparatorChar; $path -replace "^(.*$c)(?=(\p{L})$c\2)",$null
- это проверялось на работоспособность?
надо бы удвоить, либо заэскейпить [regex]::escape($c)
1
 Аватар для bidstrup
419 / 179 / 27
Регистрация: 11.03.2018
Сообщений: 771
17.07.2019, 14:43
Лучший ответ Сообщение было отмечено 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
17.07.2019, 15:46

Не по теме:

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

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

Не по теме:

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



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

Не по теме:

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2019, 19:20
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru