У меня есть каталог с несколькими файлами CSV. Я хотел бы вернуть количество строк для каждого файла, дату изменения каждого файла и строку в первом столбце после строки заголовка с помощью пакетных скриптов в окне 10. Как мне вывести в текстовый файл?
Пример
File 1: String 100 lines 1/12/2019
File 2: String 100 lines 1/10/2019
File 3: String 200 lines 1/12/2019
решение1
Я не собираюсь делать сценарий для вас, но я дам вам методы для того, что вы хотите. Сначала давайте разделим вопрос на две части:
1.- Получить количество строк в Dir
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do set /a count+=1
и чтобы получить первую строку после заголовка, вы должны сделать это, но с разрывом цикла
for /f "usebackq tokens=1 delims=," %%a in ("you_file_path") do (
set /a count+=1 && if count==2 (first_row=%%a && goto next)
)
:next
2.- Дата изменения
for /f "tokens=1,2 delims= " %%a in (
'dir "FullDirPath" ^| find /i "File_name"'
) do set ArchDate=%%a
Теперь вам предстоит склеить все это вместе и создать скрипт, вам нужно будет зациклить каждый файл, используя приведенный выше код, и в конце каждого цикла echo "%first_row%" "%archdate%" "%count%"
илиecho "%first_row%" "%archdate%" "%count%" > file.txt
Вы можете протестировать эти методы в , cmd
но чтобы использовать переменные на терминале, вам нужно заменить %%a
на %a
. В пакетном скрипте это %%a
правильный синтаксис, но на терминале %a
это правильный синтаксис.
Ваше здоровье.