Wiem, że „dir / w” lub „dir / b” pokazuje tylko nazwę pliku. Podczas gdy „dir / x” lub „dir / X” pokazuje format 8.3, ale razem pokazuje wszystkie inne informacje, takie jak nazwy plików o długim formacie, daty i rozmiar.
czy można zadzwonić dir
, która pokazuje tylko nazwy plików (nie pokazuje dat ani rozmiarów) i pokazuje to w formacie 8.3?
windows
command-line
dir
athos
źródło
źródło
Jeśli chcesz, aby nazwy 8.3 były wyświetlane i nic więcej nie będzie wyświetlane, jeśli użyjesz „dir / -n”, dostaniesz nazwę 8.3 na początku każdej linii. Uwaga: oddziela rozszerzenie od nazwy pliku spacją zamiast kropki.
Ale możesz użyć „dir / -n” w pętli for w pliku wsadowym, a następnie wyodrębnić podłańcuch pierwszych 12 znaków, aby pozbyć się reszty każdej linii. Na przykład:
„Skip = 7” pomija pierwsze 7 wierszy, które nie są nazwami plików ani katalogów, a dane wyjściowe „dir / -n” są przesyłane przez dwie komendy find w celu usunięcia dwóch ostatnich wierszy utworzonych przez „dir / -n” „(symbol potoku„ | ”musi być„ poprzedzony znakiem „^”. Ponieważ ekstrakcja podciągów odbywa się w pętli for w pliku wsadowym, potrzebne jest „setlocal EnableDelayedExpansion” i „!” należy używać z zmienna x zamiast „%”. W powyższym przykładzie zobaczysz następujące dane wyjściowe z wykonania pliku wsadowego:
źródło
abc.txt
aby zobaczyć to w akcji. Następnie, dla zabawy, utwórz plik o nazwieabc.docx
.Po godzinie zabawy z tym wymyśliłem:
z wiersza polecenia:
z pliku .BAT lub .CMD:
Uwaga: ten skrypt nadal ma problem z długimi nazwami plików, ale będzie kontynuował i tworzy plik tekstowy 8dot3, który można następnie pompować do dowolnego innego pliku wsadowego.
Oto mój cały testowy plik .Bat:
źródło
Aby wyświetlić listę plików we wszystkich podkatalogach, wypróbuj ten:
źródło