Вы должны немедленно указать базовый каталог после/R. Все, что указано в круглых скобках, будет добавлено к каждому подкаталогу в дереве. Таким образом, вы можете использовать, чтобы получить .
сам каталог:
for /R %INPUT% %%F in (.) do (...)
Кроме того, одна странная вещь, которую я только что обнаружил, что если вы используете синтаксис enabledelayedexpansion, то он не работает; он выполняет только тело для базового каталога, а не для любого подкаталога. Таким образом, следующий не будет работать, вы enabledelayedexpansion включена ли или нет:
for /R !INPUT! %%F in (.) do (...)
Другой причуда Dosbatch.
Редактировать: Чтобы ответить на ваши комментарии, становится актуальным то, что содержит ...
. Это должно работать, если вы хотите, чтобы получить атрибуты как в текущем каталоге итерации и файлов, содержащихся в текущем каталоге итерации:
for /R %INPUT% %%F in (.) do (attrib %%F& attrib %%F\*)
Edit: Вот еще один из возможных решений, которые, вероятно, будет медленнее, но с другой стороны рука может сделать код более удобным для записи. Но с другой стороны, он будет иметь проблемы с пробелами в именах файлов:
for /f %%i in ('dir /b /s %INPUT%') do (attrib %%i)
Спасибо, но нет, что не работает. Он отображает атрибут чтения/записи основного каталога и подкаталога, но не файлов. И да, у меня есть разрешенный набор расширений ... который (если честно), я не знаком. –
Возможно, мой комплект неправильный? set INPUT = C: \ Filenet \ Work \ Current \ IDCMS1 \ IM \ Cloud \ Services \ Cloudant Добавление \\ * в конец ничего не делает. –
Сообщите мне, если эти решения работают на вас. – bgoldst