Alex_Piggy:
sergiokapone
Или я неправильно понял... Странная задача. Как определить момент ветвления?
1. Вариант - четко ветвится по первой папке в пути
for /f "delims=\" %%i in ("%~p1") do for /f "delims=" %%j in ('dir /ad /b /s "%~d1\%%i\target"') do set "result_path=%%j"
2. Вариант - цикл - поднимается на шаг вверх и пересканирует, пока не перейдет в корень диска или пока не найдет папку.
Код:
Добавлено:
TemaZosin
1. Вам видно, а я вот не вижу... Серьезно, на скриншоте не видно, какие файлы были удалены.
2. Если действительно удаляет, попробуйте Find /i "explorer.exe". "/i" - ignorecase
3. Все-таки лучше не через echo | find "" , а через for ('dir /b ^| find ""'). На паре тысяч файлов Вы поймете разницу...
sergiokapone
Или я неправильно понял... Странная задача. Как определить момент ветвления?
1. Вариант - четко ветвится по первой папке в пути
for /f "delims=\" %%i in ("%~p1") do for /f "delims=" %%j in ('dir /ad /b /s "%~d1\%%i\target"') do set "result_path=%%j"
2. Вариант - цикл - поднимается на шаг вверх и пересканирует, пока не перейдет в корень диска или пока не найдет папку.
Код:
@echo off set "work_folder=%CD%" cd /d "%~dp1" :loop for /f "delims=" %%i in ('dir /ad /s /b "target" 2^>nul') do set "result_path=%%i" if not defined result_path if not "%cd%"=="%~d1\" (cd .. && goto :loop) cd "%work_folder%" echo "%result_path%" |
Добавлено:
TemaZosin
1. Вам видно, а я вот не вижу... Серьезно, на скриншоте не видно, какие файлы были удалены.
2. Если действительно удаляет, попробуйте Find /i "explorer.exe". "/i" - ignorecase
3. Все-таки лучше не через echo | find "" , а через for ('dir /b ^| find ""'). На паре тысяч файлов Вы поймете разницу...