Цитата megaloman:
У меня работает, возможно, у Вас какие-то тонкости (скытые папки, например). Мне надо информация, по какому пути что не найдено. »
|
Благодарю за скорый ответ Megaloman !
За представленная вами v.2. Поиск вроде бы быстрее стал работать (субъективно)
Megaloman - V.2
A.
Вот тут есть недочет/фича/баг
V.2 - находит И папки, если они входят в путь
(например ..\Acrobat\Cache\Code Cache)
V.1 - находит правильно:
..\Acrobat\Cache\
..\Acrobat\Code Cache\
* где Acrobat - получается искомая папка профиля
* а маркера-папки = "Code Cache" + "Cache" находятся внутри профиля
Результат работы V.2 :
(1) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\"
(2) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Cache"
(3) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Code Cache"
------
(1) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\"
(2) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\blob_storage"
(3) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Code Cache"
------
(1) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\"
(2) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Code Cache"
(3) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Code Cache"
------
(1) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\"
(2) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Session Storage"
(3) "C:\Users\_________\AppData\LocalLow\Adobe\AcroCef\DC\Acrobat\Cache\Code Cache"
B.
Поиск по всем логическим дискам
Работает только если ставить слеш после двоеточия: BoxI=c:\
* Без слеша ищет исключительно в c:\Users\%USERNAME%
* Первый пример работал с BoxI=c:
ИТОГ
Теперь даже не знаю: какой вариант лучше?
Если выпилить лог из V.2, останется:
Код:

FOR /F "usebackq delims=" %%d IN (`2^>nul Dir /B /S /A:D "%BoxI%" ^|FIND /I "\%BoxA%"`) Do (
If Exist "%%~dpd%BoxA%" If Exist "%%~dpd%BoxB%" Call :AnyDo "%%~dpd" "%%d" "%%~dpd%BoxB%"
)
= краткий, красивый,
= может даже быстрее...
Но баг-фича поиска по путям описанный выше, + c:\
И определить... какой вариант лучше, по командам-функциям/скорости/правильности... V.1 или V.2 сложно - знаний не хватает
КОДИРОВКА + ЛОГ (РЕШЕНО)
Спасибо, походу по кодировке я справился ранее:
Пересоздал лог файл из cmd
- видно изначальная кодировка файла лога была другая,
а просматривал я в +другой
нежели той, в которой cmd писал и в которой записан сам лог файл)
Логи открывал в Notepad++
+ПРИМЕР
CMD chcp 1251 (записан как UTF8) - лог открыт как ___ (np++ автоматом в UTF8 открывает) = все ок
CMD chcp 866 (записан как 866) - лог открыт как 866 (np++ автоматом в ANSI открывает) = все ок
А В ЛОГ ВЫВОЖУ ТАК:
Код:

:AnyDo
Echo. & Echo. >> "%Log%"
Echo ------ & Echo --- >> "%Log%"
Echo (1) %1 & Echo %1 >> "%Log%"
Echo (2) %2 & Echo %2 >> "%Log%"
Echo (3) %3 & Echo %3 >> "%Log%"
Exit /B 0
- задачи по логам особо не стояло
- просто при тестах делаю вывод чтоб видеть
* но ваш пример Megaloman по любому полезен 5+
НАХОДИТ ТОЛЬКО КОНЕЧНЫЕ ПАПКИ (РЕШЕНО)
По поводу основного бывшего вопроса "находит только конечные папки"
Тут моя вина
Вы правы Megaloman!
Изначально:
Тестил ваш бланковый пример v.1 - все было ок
Про "конечные папки" не обратил внимания в первых тестах
И начал быстро на него навешивать свои call`ы для последующего встраивания
Попутно тестировал, и тут только заметил "конечные"
Подумал, что ваша ошибка...
После вашего v.2
решил бланковый v.1 заново попробовать
- и все работает
- даже не поверил с 2-4 попыток))
= находит как и "вышестоящие" так и "конечные"
Каюсь(моя ошибка в чем-то была, не нашел).
+РЕЗУЛЬТАТ
(1) "c:\Users\_________\AppData\Local\Microsoft\Edge\User Data\Default"
(2) "c:\Users\_________\AppData\Local\Microsoft\Edge\User Data\Default\Cache"
(3) "c:\Users\_________\AppData\Local\Microsoft\Edge\User Data\Default\Code Cache"
(1) "c:\Users\_________\AppData\Local\Microsoft\Edge\User Data\Default\Storage\ext\ihmafllikibpmigkcoadcmckbfhibefp\def"
(2) "c:\Users\_________\AppData\Local\Microsoft\Edge\User Data\Default\Storage\ext\ihmafllikibpmigkcoadcmckbfhibefp\def\Cache"
(3) "c:\Users\_________\AppData\Local\Microsoft\Edge\User Data\Default\Storage\ext\ihmafllikibpmigkcoadcmckbfhibefp\def\Code Cache"
Можно, а зачем? Это ничего не меняет.
Цитата megaloman:
Можно, а зачем? Это ничего не меняет. »
|
это из-за необразованности - разницы не уловил, не усвоил
и goto :EOF в основном, на автомате, использую, когда список команд по CALL вызываю