@ Ryan Bemrose Решение хорошо в том, что оно даст ожидаемый результат (объединенное содержимое всех найденных файлов johnsfiles.txt
).Однако это также может привести к нескольким сообщениям об ошибках отсутствующих файлов.Дело в том, что цикл FOR /R
ведет себя по-разному, в зависимости от того, указана ли в скобках маска или фактическое имя .В первом случае он будет перебирать только найденные файлы, в то время как во втором случае он «найдет» указанный файл во всех папках ветви, включая те, которые фактически не связываются с файлом.Похоже, что имя полностью игнорируется, и команда просто перебирает все подпапки.
Это немного странно, и я не смог преодолеть его иначе, чем используя вывод команды DIR /S /B
впетля, как это:
@ECHO OFF
TYPE NUL >allofjohnsfiles.txt
FOR /F %%a IN ('DIR /S /B johnsfiles.txt') DO TYPE "%%a" >>allofjohnsfiles.txt