Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/29: Рейтинг темы: голосов - 29, средняя оценка - 5.00
 Аватар для Nimo
34 / 25 / 15
Регистрация: 06.12.2012
Сообщений: 144

Поиск папки на диске

10.11.2013, 23:21. Показов 5752. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! В общем, нашел в теме полезные батники скриптик -
Полезные BAT/CMD скрипты

Можно ли его модифицировать, чтобы искалось не только на разделах, но и в папках. Т.е. сейчас он ищет C:\Blabla, а можно ли как-то сделать С:\Users\Blabla

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

Добавлено через 1 час 9 минут
В принципе атрибут dir /s ищет дальше, но проблема в том, что если в той папке есть какая-то папка, то он посчитает её отдельной вещью, лишь потому что там в пути есть наша папка...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.11.2013, 23:21
Ответы с готовыми решениями:

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

Добавить заданную начальную букву к имени каждой папки на заданном диске
3.Для папок диска Х: установить имена начинающиеся с буквы А, далее старое имя

Поиск на диске, исключая определенные папки
Доброго форумчане! программка ищет на всем диске файлы по маскам "*.xmcd" "*.dfr" "*.mcd" для ускорения поиска исключил системные...

8
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.11.2013, 23:27
Комментарии:

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
Set /p "Seek=Введите часть имени искомой папки: "
:: Перебирает все локальные диски
For /F "tokens=2 delims==" %%D in ('wmic logicaldisk where drivetype^=3 get caption /value^| find /i "Caption"') do (
  set Disk=%%D
  set Disk=!Disk:~0,2!
  rem Фокус такой - чтобы имя диска появлялось только, когда на нем что-либо было найдено
  set Again=
  for /f "delims=" %%? in ('dir /B /AD "!Disk!\*" ^| find /i "%Seek%"') do (
    if not Defined Again (
      set Again=true
      echo.
      echo Drive !Disk!
      echo ============
    )
    rem Счетчик
    Set /A C+=1
    rem Записывает имена каталогов в массив
    Set Folder.!C!=!Disk!\%%?
    rem Выводит на экран найденную папку
    echo !C!. %%?
))
Echo.
set /p "ch=Выберите № папки для перехода: "
:: Переходит в папку по номеру из массива
start "" "!Folder.%ch%!"
Добавлено через 3 минуты
Для реализации Вашей задачи можно воспользоваться вот такой маской:

Bash
1
for /f "delims=" %%? in ('dir /B /S /AD "!Disk!\*%Seek%*"') do (
2
 Аватар для Nimo
34 / 25 / 15
Регистрация: 06.12.2012
Сообщений: 144
10.11.2013, 23:39  [ТС]
Боже мой! Спасибо! Но все же у меня есть куча вопросов.
1. Это работает, но если на каком-то диске этого нету, то пишется просто - файл не найден, можно ли как-то это сообщение опустить? Помню был какой-то такой атрибут.
Bash
1
for /f "delims=" %%? in ('dir /B /S /AD "!Disk!\*%Seek%*"') do (
2. По комментариям.
SetLocal EnableExtensions EnableDelayedExpansion - немного не понял что это, справка не помогла...
set Disk=!Disk:~0,2! - что это, ведь работает и без, я пробовал.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.11.2013, 23:43
Цитата Сообщение от Nimo Посмотреть сообщение
set Disk=!Disk:~0,2! - что это, ведь работает и без, я пробовал.
Урезание только первых двух символов.
На некоторых ОС WMIC выдает мусор рядом с диском. Эта команда нужна для надежности.

Цитата Сообщение от Nimo Посмотреть сообщение
SetLocal EnableExtensions EnableDelayedExpansion
SetLocal и расширенная обработка команд в Windows Batch [Статья]

Цитата Сообщение от Nimo Посмотреть сообщение
файл не найден, можно ли как-то это сообщение опустить?
Bash
1
for /f "delims=" %%? in ('dir /B /S /AD "!Disk!\*%Seek%*" 2^>NUL') do (
1
 Аватар для Nimo
34 / 25 / 15
Регистрация: 06.12.2012
Сообщений: 144
10.11.2013, 23:46  [ТС]
Спасибо, очень оперативно, но теперь боюсь, что с указателями я не разберусь, еще не проходил(

Добавлено через 24 секунды
2^>NUL - это что-то с памятью?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
10.11.2013, 23:58
Цитата Сообщение от Nimo Посмотреть сообщение
что с указателями я не разберусь
какими указателями?

Цитата Сообщение от Nimo Посмотреть сообщение
2^>NUL - это что-то с памятью?
2 - это номер потока. Конкретно этот - StdErr http://www.windowsfaq.ru/content/view/260/37/
0
 Аватар для Nimo
34 / 25 / 15
Регистрация: 06.12.2012
Сообщений: 144
11.11.2013, 02:37  [ТС]
Растолкуйте мне пожалуйста, почему цикл не работает.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
set /p  Disk= D:
  set Again=
  for /f "delims=" %%? in ('dir /B /S /AD "!Disk!\*!Seek!*"') do (
    if not Defined Again (
      set Again=true
      echo.
      echo Drive !Disk!
      echo ============      
    )
    Set /A C+=1
    Set Folder.!C!=%%?
    echo !C!. %%?
    Echo.
Я не могу понять, что надо писать вместо "delims=", ведь явно проблема там.

Добавлено через 27 минут
Это будет очень смешно для вас, но для меня не очень, я бился 2 часа надо "выдуманной" ошибкой лишь потому, что не заметил, что не выставил окончание цикла...
0
11.11.2013, 22:16

Не по теме:


Цитата Сообщение от Nimo Посмотреть сообщение
я бился 2 часа...
Цитата Сообщение от Nimo Посмотреть сообщение
Добавлено через 27 минут
всего-то полчаса... у всех бывает. ;)

0
 Аватар для Nimo
34 / 25 / 15
Регистрация: 06.12.2012
Сообщений: 144
12.11.2013, 01:59  [ТС]
Ну как бы проблему я же решал изначально сам, потом решил написать, потому как запутался, но как бы ждать просто ответа сложа руки не повышает продуктивность. Так что вот так)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.11.2013, 01:59
Помогаю со студенческими работами здесь

250 файлов *.pdf перенести с папки на диске в папки SharePoint
Всех приветствую! Уважаемые форумчане, нужна консультация в плане разработки для обычного пользователя настольного приложения для...

250 файлов *.pdf перенести с папки на диске в папки SharePoint
Всех приветствую! Уважаемые форумчане, нужна консультация в плане разработки для обычного пользователя настольного приложения для...

Неизвестные папки на диске Д
Уважаемые знатоки объясните мне что это за папки на диске д ??? Можно ли их удалить или нет? Вот скрин

Непонятные папки на диске D
Ребят. На диске D непонятные папки, удаляться не хотят, занимают почти 80 гигов. На самом диске 224 гб., свободно 41,5. Причём занято...

Поиска папки на диске
Да , чтож такое то , не могу найти способ поиска папки , именно папки , а не файла . Суть , найти папку MyFile , может быть создана на...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru