Jak rekurencyjnie wyświetlać nazwy plików (tylko) w systemie DOS / Windows? [duplikować]

20

Możliwe duplikaty:
Uzyskaj rekurencyjne nazwy plików w wierszu polecenia

Chciałbym rekurencyjnie wyświetlić listę wszystkich plików w katalogu, pokazując tylko nazwy plików (bez rozszerzeń i bez pełnych ścieżek). Używam Windows / DOS.

Najbliżej mogę dostać się dirbyło dir /s /b, ale to wyświetla pełne ścieżki, a także pokazuje rozszerzenia.

Cóż, może mógłbym żyć z rozszerzeniami, ale muszę pozbyć się ścieżek!

Jakieś pomysły?

David B.
źródło
1
Która wersja systemu Windows?
OldWolf,
@OldWolf: XP. Wolę nie używać żadnego oprogramowania innych firm /
David B

Odpowiedzi:

28
cd /d C:\Path\To\Source\Folder
for /r %i in (*) do @echo %~ni

Jeśli potrzebujesz listy zapisanej w pliku, dołącz >> C:\Path\To\list_file.txtją na końcu forpolecenia.

Jeśli ostatecznie chcesz rozszerzeń, zmień %~nina%~nxi

Aby użyć w pliku wsadowym, zmień wszystko %na%%

afrazier
źródło
6
Jeśli potrzebujesz ścieżki, nazwy i rozszerzenia, zmień% ~ ni na% ~ pnxi
Deep
to działa, ale nie pokazuje ukrytych plików. Jak mogę również zobaczyć ukryte pliki?
ala
@ala: Jeśli chcesz pokazać ukryte pliki, musisz użyć odpowiedzi takiej jak David Remy tylko z odpowiednimi flagami przekazanymi do dirpolecenia.
afrazier
7

Jeśli chcesz załadować PowerShell, to polecenie powinno to zrobić.

get-childitem "d:\acc" -recurse|foreach {$_.Basename}
uSlackr
źródło
5

Robienie czegoś takiego powinno dać ci to, czego chcesz:

@for /f "delims=" %a in ('Dir /s /b %systemdrive%') do echo %~na

Po prostu potokuj wyjście do pliku i użyj go stamtąd, jeśli to konieczne.

David Remy
źródło
3

Nie wiem, czy uważasz, że jest to oprogramowanie innej firmy, czy nie, ponieważ jest to oprogramowanie Microsoft i jest dostarczane z wersją 7, ale PowerShell dość łatwo rozwiąże większość problemów. Jeśli jeszcze go nie zainstalowałeś, jest dostępny dla XP na stronie Microsoftu.

Get-ChildItem -path "C:\Program Files\" -recurse | foreach ($_) {
    write $_.name
}
OldWolf
źródło