Команда DIR поддерживает несколько аргументов для списков каталогов.
dir /b *.dll C:\windows\system32\ > dll.txt
Эта командная строка приводит к записи в файл dll.txt
- все не скрытые имена файлов и папок, совпадающие в текущем каталоге шаблон подстановочного знака
*.dll
и
- все не скрытые имена файлов и папок, совпадающие в каталоге
C:\windows\system32\
шаблон подстановочного знака по умолчанию *
.
Следующая командная строка:
dir /b a* C:\windows\system32\ > a.txt
Эта командная строка приводит к записи в файл a.txt
- все не скрытые имена файлов и папок, совпадающие в текущем каталоге шаблон подстановки
a*
и
- все не скрытые имена файлов и папок, совпадающие в каталоге
C:\windows\system32\
шаблон подстановки по умолчанию *
.
Но, скорее всего, требуется запись dll.txt
всех * .dll файлов в каталоге C:\windows\system32\
и a.txt
всех a*
файлов в каталоге C:\windows\system32\
с обоими значениями времени, включая сопоставление файлов со скрытым набором атрибутов. По этой причине следующие командные строки:
dir %SystemRoot%\System32\*.dll /A-D /B >dll.txt
dir %SystemRoot%\System32\a* /A-D /B >a.txt
Опция /A-D
отключает список совпадений каталогов (атрибут, а не каталог), а также случайные шаблоны и включение списка скрытых файлов.
Для получения справки по команде DIR запустить в окне командной строки dir /?
.
Кстати: Перенаправитель файловой системы Windows следует учитывать. Две командные строки выводят в текстовые файлы файлы *.dll
и a*
в каталоге %SystemRoot%\SysWOW64
, если пакетный файл выполняется 32-битным cmd.exe
в %SystemRoot%\SysWOW64\
в 64-битной Windows, поскольку пакетный файл запускается из 32-битного приложения.
Пакетный файл, приведенный ниже, может быть использован для получения списка системного каталога Windows в соответствии с архитектурой Windows, что имеет значение для 64-битной Windows.
set "SystemFolder=%SystemRoot%\System32"
if exist "%SystemRoot%\Sysnative\cmd.exe" set "SystemFolder=%SystemRoot%\Sysnative"
dir %SystemFolder%\*.dll /A-D /B >dll.txt
dir %SystemFolder%\a* /A-D /B >a.txt
Очень специальный перенаправитель %SystemRoot%\Sysnative
не существует для 64-разрядных приложений и, следовательно, также не для пакетных файлов, выполняемых 64-разрядными cmd.exe
в каталоге %SystemRoot%\System32\
. Обратите внимание, что Sysnative
- это ни каталог, ни символическая ссылка. Можно проверить, существует ли файл в %SystemRoot%\Sysnative
, но нет, если существует %SystemRoot%\Sysnative
.