У меня есть команда Dir, которую я использую для создания текстового списка каталогов файлов .. "dir /a /b /-p /o:gen> z-file_list.txt"

Кто-нибудь знает, как я могу изменить это, чтобы доза в текстовом списке не содержала расширений? Так просто имя файла?

Заранее спасибо!

  • РЕДАКТИРОВАТЬ -

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

Текстовый файл будет выглядеть так
имяфайла.рсш
имяфайла.рсш
имяфайла.рсш
имяфайла.рсш

Я пытаюсь понять, как сделать так, чтобы текстовый файл выглядел так.
имя файла
имя файла
имя файла
имя файла

Спасибо .. извини мне было непонятно

2 ответа2

2

Команда 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

Run dir /? del /? а for /? для более подробной информации о синтаксисе и переключателях.

0

Вы можете сделать это из командной строки 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 и перенаправляются (>) в текстовый файл.

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