
У меня есть команда Dir, которую я использую для создания текстового списка каталога файлов.. "dir /a /b /-p /o:gen > z-file_list.txt"
Кто-нибудь знает, как мне изменить это, чтобы текстовый список не содержал никаких расширений? Так что только имя файла?
Заранее спасибо!
- РЕДАКТИРОВАТЬ -
Извините, я не ясно выразился. Я имею в виду, что его команда сохранит txt-файл со списком файлов содержимого каталога.
Текстовый файл будет выглядеть следующим образом:
filename.ext
filename.ext
filename.ext
filename.ext
Я пытаюсь понять, как сделать так, чтобы текстовый файл выглядел следующим образом.
имя файла
имя файла
имя файла
имя файла
Спасибо... извините, я выразился неясно.
решение1
Команда dir
не имеет переключателя или опции для удаления расширений.
Однако это можно сделать, обработав выходные данные dir /b
в for /f
цикле.
(del list.txt 2>nul) & for /f %f in ('dir /a /b /o:gen') do @echo %~nf >>list.txt
Если вас не интересуют подкаталоги или системные/скрытые файлы (для чего они и предназначены), то подойдет и dir /a
обычный вариант .for
(del list.txt 2>nul) & for %f in (*) do @echo %~nf >>list.txt
Запустите dir /?
и del /?
получите for /?
более подробную информацию о синтаксисе и переключателях.
решение2
Вы можете сделать это из командной строки CMD, немного поигравшись с Powershell. В командной строке введите следующее:
powershell -command "dir |select basename" > file_list.txt
Как я уже сказал, это своего рода мошенничество, поскольку powershell -command
вызывает оболочку Powershell для запуска скрипта Powershell dir |select basename"
. К вашему сведению, dir
в Powershell это просто псевдоним для команды get-childitem
, не имеющий ничего общего с dir
командой из командной строки CMD. Powerhsell выполняет этот скрипт, а результаты возвращаются в командную строку CMD и перенаправляются ( >
) в текстовый файл.