У меня есть папка с несколькими файлами, содержащими записи.
Мне нужен пакетный скрипт Windows, который будет копировать все «имена файлов» в один выходной файл вместе с количеством записей, присутствующих во всех файлах.
Ссылка НАЙТИ Поиск текстовой строки в файле и отображение всех строк, где она найдена.
find /v /c "" *.* > result.txt
Как это устроено
/v
инвертирует поиск (поэтому, когда мы ничего не ищем, мы находим все строки) /c
считает совпадения""
ничего не соответствует*.*
поиск по всем файлам> result.txt
перенаправить выводОграничения
\r\n
\r
). Это делает его ограниченным для поиска в двоичных или XML-типах файлов.Чтобы удалить дополнительные - и пустые строки, мы можем заключить указанную выше команду в конструкцию for
следующим образом:
for /f "usebackq tokens=2-3" %a in (`find /v /c "" *.*`) do echo %a %b >> result.txt
Большое спасибо за ваши ответы. В дополнение к моему первоначальному требованию, сценарий заключается в том, что папка создается (в формате ГГГГММДД) ежедневно в определенном месте. Эта папка содержит несколько файлов с / без записей в нем.
Поскольку это происходит ежедневно, я буду использовать этот пакетный файл ежедневно. И всякий раз, когда я выполняю этот пакетный файл в какой-либо конкретный день, он должен затем проверять папку, которая будет создана в этот конкретный день, а затем выдавать выходной файл, который содержит имена файлов и количество записей.
Есть ли способ получить это требование?
Просто для списка имен файлов:
dir * /b /s > files.txt