поиск файла в папке, и если файл найден то переименование папки
Доброго времени суток уважаемые гуру, снова хочу обратиться за помощью. Возникла у меня конечно глупая но нужная мне задача.
Есть у меня дерево каталогов, в этом дереве присутствуют разномастные каталоги, в одном из них лежит файл для примера 1.txt как рекурсивно пройтись по каталогам в его поиске, и если он будет обнаружен то родительский каталог этого файла переименовать?
|
Такой файл будет единственным в дереве? Или может оказать так:
Код:
W:\01
W:\02
W:\03
W:\02\04
W:\02\1.txt
W:\02\04\1.txt
? Ибо сие в корне меняет возможные методы обхода дерева.
|
Код:
@Echo Off
SetLocal EnableDelayedExpansion
:: где ищем
set in=c:\2
:: на что меняем директорию
set out=new
:: имя искомого файла
set file=DelFiles.txt
For /f "delims=" %%a In ('dir /b /s /a-d "%in%\*"') do (
if /i "%%~nxa"=="%file%" (
echo %%~dpa
set line=%%~dpa
ren "!line:~0,-1!" "%out%"
))
pause
|
sov44, почему вместо:
Код:
For /f "delims=" %%a In ('dir /b /s /a-d "%in%\*"') do (
if /i "%%~nxa"=="%file%" (
не просто:
Код:
… ('dir /b /s /a-d "%in%\%file%"') …
?
И нужно-таки уточнение от автора по поводу моего вопроса, иначе все вложенные каталоги после переименования будут потеряны для последующего поиска.
|
Цитата:
Цитата Iska
Такой файл будет единственным в дереве? Или может оказать так: »
|
да такой файл будет единственный, и в других каталогах он не встретится
|
sov44, Iska, спасибо большое, решение подошло как нельзя лучше. :hi:
|
Время: 08:40.
© OSzone.net 2001-