Я знаю, что «dir / w» или «dir / b» показывает только имя файла. Хотя «dir / x» или «dir / X» показывает формат 8.3, но вместе показывает всю другую информацию, такую как длинные имена файлов, даты и размер.
Можно ли вызвать dir
, что показывает только имена файлов (не показаны даты и размеры), и показывает, что в формате 8.3?
windows
command-line
dir
Атос
источник
источник
Если вы просто хотите, чтобы отображались имена 8.3 и ничего больше, если вы используете «dir / -n», вы получите имя 8.3 в начале каждой строки. Примечание: он отделяет расширение от имени файла пробелом, а не точкой.
Но вы можете использовать «dir / -n» внутри цикла for в пакетном файле, а затем извлечь подстроку из первых 12 символов, чтобы избавиться от остальной части каждой строки. Например:
«Skip = 7» пропускает первые 7 строк, которые не являются ни именами файлов, ни каталогов, а вывод «dir / -n» передается через две команды поиска для удаления последних двух строк, созданных «dir / -n» "(символ канала" | "должен быть" экранирован "через" ^ ". Поскольку извлечение подстроки происходит в цикле for в пакетном файле, необходимо использовать" setlocal EnableDelayedExpansion "и"! "необходимо использовать с переменная x, а не "%". В приведенном выше примере вы увидите следующий вывод выполнения командного файла:
источник
abc.txt
чтобы увидеть это в действии. Затем, для удовольствия, создайте файл с именемabc.docx
.Проиграв с этим час, я придумал следующее:
из DOS подскажите:
из .BAT или .CMD файла:
примечание: у этого скрипта все еще есть проблема с длинными именами файлов, но он продолжит работу и создаст текстовый файл 8dot3, который затем может быть закачан в любой другой пакетный файл.
Ниже приводится весь мой тестовый файл .Bat:
источник
Чтобы получить список файлов во всех подкаталогах, попробуйте это:
источник