1

Я хочу скопировать фиктивный текстовый файл в каждый подкаталог данного каталога на сетевом диске (Windows). Поскольку мы просматриваем сотни или тысячи подкаталогов, я не могу сделать это вручную, но я могу создать список соответствующих каталогов. Этот список может быть передан в пакетный файл или аналогичный.

Я предполагаю, что пакетный файл будет иметь какой-то цикл FOR, который берет в качестве счетчика строку из списка каталогов. Для каждой итерации цикл просто создает пустой файл в каталоге, указанном счетчиком, но мне не хватает навыков кодирования, чтобы создать соответствующий пакетный файл.

Как мне лучше всего подойти к этой проблеме?

Обновить:

c:\help for включает ключ /R который кажется полезным:

FOR /R [[диск:] путь]% переменная IN (настройка) DO команда [команда-параметры]
Просматривает дерево каталогов с корнем в пути [drive:], выполняя оператор FOR в каждом каталоге дерева. Если спецификация каталога не указана после /R, то подразумевается текущий каталог. Если set - это просто один символ точки (.), Он просто перечислит дерево каталогов.

Это кажется простым, но мне нужно прочитать строку из списка каталогов:

за %? в (.) эхо%? > dumy_file.txt


Детали: у моей команды есть общий сетевой диск с тысячами подпапок, заполненных устаревшей документацией и старыми рабочими документами; это беспорядок. Планируется создать новую структуру дерева в другом месте (готово), которая отражает нашу будущую концепцию файлов, а затем либо переместить, либо удалить файлы в старой структуре дерева. Чтобы отследить, какие подкаталоги уже были "перенесены", мы подумали, что было бы удобно иметь маркер "do" в виде фиктивного файла, который можно искать.

1 ответ1

2

Вот одна строка, которая делает то, что вы хотите, используя for /r как вы предлагаете.

Если вы поместите его в пакетный файл, вы должны изменить %d на %%d в обоих местах.

for /r %d in (dummyfilename.txt) do echo dummy content > "%d"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .