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

Показать сообщение отдельно

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


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

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


Цитата 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 вызываю

Отправлено: 05:51, 24-05-2022 | #5