DEL * 1. * удаляет все файлы в папке

24

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

Я использую команду

DEL *1.*

Это работает, когда я использую букву, как

DEL *e.*

но когда я использую номер, все удаляется.

Alex
источник
1
Я не согласен с близкими голосами
Nifle
Тот факт, что в одном вопросе задается вопрос о dirповедении с подстановочными символами, а о другом вопросе об delодинаковом поведении с подстановочными символами, на самом деле не делает их разными вопросами, Найфл. Поведение подстановочных знаков в соответствующих именах является основой вопроса. Его часто спрашивают, и этот дубликат почти в канонической форме. Гравити ответила дважды. Так что я . Это все дубликаты .
JdeBP

Ответы:

36

Windows сохраняет имя файла 8.3 для каждого файла, чтобы обеспечить совместимость.

Так что если у вас есть файлы

test1.ext
test2.ext
test3.long

последний файл сохраняется с альтернативным именем

TEST3~1.LON

таким образом сопоставляя образец *1.*.

Вы можете выполнить, dir /xчтобы увидеть все 8.3 имен файлов.

Исправления :

  • Чтобы удалить все файлы в каталоге directoryс их именем 8.3, выполните

    fsutil 8dot3name strip directory
    
  • Чтобы удалить все файлы в каталоге directoryс их именем 8.3, в том числе в подкаталогах, выполните

    fsutil 8dot3name strip directory /s
    
  • Чтобы отключить имена файлов 8.3 на диске drive:(влияет только на вновь созданные файлы), выполните команду

    fsutil 8dot3name set drive: 1
    
  • Чтобы полностью отключить имена файлов 8.3 (влияет только на вновь созданные файлы), выполните команду

    fsutil 8dot3name set 1
    

Для полного синтаксиса выполните

fsutil 8dot3name strip & fsutil 8dot3name set

Дополнительная информация:

Деннис
источник
1
К каким версиям Windows они применимы?
jprete
1
@jprete: длинные имена файлов (и, следовательно, причудливость подстановочных знаков) существуют с NT 3.5 в 1994 году. fsutilбыла введена в XP, если я правильно помню.
Деннис