5

Я хочу перечислить все файлы JAR в подкаталогах по указанному пути на компьютере Windows, а также размер файла и время.

dir /s дает мне слишком много информации. dir /s *.jar вроде как делает то, что я хочу, но дает мне кучу информации для каждого каталога, которая меня не волнует. dir /b/s *.jar короток, но не дает мне времени или размера файла.

Есть ли команда, которая просто перечислит файлы jar + размер файла / время?

5 ответов5

8

Вы могли бы сделать это:

for /r %i in (*.jar) do echo  %~ti %~zi %i 

который будет перебирать все каталоги (включая текущий) и выводить имена *.jar . Он также выведет команду echo , так что вы можете передать вывод в файл:

for /r %i in (*.jar) do echo %~ti %~zi %i >> myJars.txt

или положить его в летучую мышь

@echo off
for /r %%i in (*.jar) do echo %%~ti %%~zi %%i

обратите внимание на двойные % в версии .bat .

0

Если нет особой причины для использования командной строки (например, нужен пакетный скрипт)
Вы можете просто использовать Проводник, Поиск, чтобы вывести список *.jar файлов из базовой папки.
Вы получите информацию о размере и дате, а список можно отсортировать несколькими способами.

Это будет решение с графическим интерфейсом.
Мне всегда было интересно, почему Windows не позволяет мне экспортировать такой результат поиска в CSV/XLS/TXT.
Вся эта тяжелая работа по просеиванию через папки теряется; не может постобработать вывод.
У кого-нибудь есть идеи по поводу такого экспорта в файл?

0

Ближе всего я смог добраться до того, что тебе нужно было

dir /p /s *.jar
Это выдает каталоги файлов, их размер и дату / время.
0

Эта командная строка работает:

dir /s *.jar | find "jar"

Он направляет вывод "dir" в команду "find", чтобы отфильтровать его - отфильтровывать строки, не содержащие "jar", как строки с "Directory".

Однако это только 99,9% пуленепробиваемых. Если в названии папки содержится "jar" И эта папка содержит файл jar, вам необходимо отфильтровать это:

dir /s *.jar | find "jar" | find /V "Directory of"

«/V» означает, что все строки, НЕ содержащие "Directory of", будут напечатаны на экране.

0

Исключая пути:

for /r c:\your\path %i in (*.jar) do @echo %~nxi %~zi %~ti

Включая пути:

for /r c:\your\path %i in (*.jar) do @echo %~i %~zi %~ti

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