0 Dokumentacja)
Znaleźliśmy wyniki pasujące do "0" w 0 ms
Zadowolony
CON, PRN, AUX i NUL to w Windows 11 urządzenia, a nie nazwy plików
Raymond Chen wyjaśnia, dlaczego reguła z DOS 1.0 nadal obowiązuje w Windows 11
Przetestowałem regułę z czasów DOS w Windows 11 26H2, a nazwa NUL.txt została zaakceptowana
MS wyjaśnia, dlaczego Windows 11 nadal blokuje pliki o nazwie CON. Reguła sięga czasów MS-DOS
Czas: Oct, 19, 2026
Windows 11 26H2 does not allow a folder to be named CON, a rule dating back to DOS

Windows 11 pozwala nadawać plikom nazwy o długości 200 znaków, pełne spacji i emoji, ale Eksplorator plików odmówi nazwania pliku lub folderu CON. CON, PRN, AUX, NUL, COM1–COM9 oraz LPT1–LPT9 to zastrzeżone nazwy urządzeń. Inżynier firmy MS, Raymond Chen, wywodzi ich pochodzenie z systemu DOS 1.0, który nie obsługiwał nawet folderów.

Przetestowałem tę regułę na komputerze z systemem Windows 11 26H2. Ograniczenie wprowadzone przez system operacyjny z 1981 roku nadal obowiązuje, choć Windows Latest odkrył, że część tej funkcji nie działa już w sposób opisany w dokumentacji MSu.

File Explorer on Windows 11 26H2 showing an error after an attempt to rename a folder to CON

W systemie Windows 11 CON, PRN, AUX i NUL są urządzeniami, a nie nazwami plików

Każda zastrzeżona nazwa odpowiada określonemu urządzeniu. Szczególnie interesująca jest nazwa NUL: działa jak czarna dziura, która odrzuca wszystko, co zostanie do niej wysłane.

Dokumentacja MSu dotycząca nazewnictwa plików nadal instruuje deweloperów: “Nie używaj następujących zastrzeżonych nazw jako nazw plików”. Ograniczenia dotyczą również folderów, ponieważ system Windows traktuje folder jako specjalny typ pliku.

Windows 11 refusing to rename a folder as PRN

Według MSu dodanie rozszerzenia nie powinno pozwalać na obejście ograniczenia, choć w niektórych przypadkach jest to możliwe. Firma stwierdza: “NUL.txt i NUL.tar.gz są równoważne nazwie NUL”. Nawet cyfry w indeksie górnym nie są wyjątkiem. Windows interpretuje ¹, ² i ³ jako cyfry, co oznacza, że nazwy takie jak COM¹ i LPT³ są zastrzeżone “w każdym katalogu”.

Pod względem architektury COM1 jest łączem do portu szeregowego w jądrze systemu Windows. MS określa to jako nazwę urządzenia MS-DOS, dlatego wpisanie COM1 powoduje uzyskanie dostępu do portu, a nie do pliku.

Raymond Chen wyjaśnia, dlaczego reguła z DOS 1.0 nadal obowiązuje w Windows 11

Historia zaczyna się od CP/M, systemu operacyjnego, z którym MS-DOS miał zachować zgodność. W CP/M nazwy urządzeń zawsze zawierały dwukropek, na przykład CON:. MS-DOS uczynił dwukropek opcjonalnym — decyzję tę Michal Necasek z OS/2 Museum nazywa “fatalnym błędem”. Zwykła nazwa, taka jak CON, nie daje systemowi DOS żadnej wskazówki, czy chodzi o plik, czy o konsolę.

Sanco 8001 computer running CP/M 2.2 in 1982

W opublikowanym w 2003 roku wpisie na blogu Old New Thing Chen wyjaśnił, że “DOS 1.0 nie obsługiwał podkatalogów, małych liter ani nazw plików dłuższych niż format 8.3”. To ograniczenie jest również nietypowym powodem, dla którego niektóre z najstarszych plików systemowych Windows 11 zachowały nazwy pochodzące z epoki DOS-a.

W tamtych czasach, jeśli asembler pytał, gdzie zapisać dane wyjściowe, a użytkownik chciał otrzymać wydruk, “wpisywało się ‘PRN’ jako nazwę pliku”. Wpisanie NUL powodowało odrzucenie danych wyjściowych, natomiast CON wyświetlało je na ekranie.

Ponieważ dyski miały tylko jeden katalog, te specjalne nazwy nie mogły działać nigdzie indziej. Gdy w 1983 roku wraz z systemem DOS 2.0 pojawiły się foldery, nazwy urządzeń również musiały działać w ich obrębie. Jak wyjaśnił Chen, w przeciwnym razie użytkownicy nie mogliby przejść do innego folderu, uruchomić asemblera i wpisać NUL, aby odrzucić jego dane wyjściowe. MS sprawił więc, że nazwy te działają w każdym folderze, dlatego do dziś nie można utworzyć pliku o nazwie PRN w folderze Dokumenty.

Dlaczego MS nie usunął tego zachowania po ponad 40 latach? “Ponieważ wszyscy nadal na nim polegają” — napisał Chen. Pliki wsadowe ukrywają dane wyjściowe, przekierowując je do >NUL, skrypty sprawdzają istnienie folderu za pomocą polecenia “if exist directoryname\nul”, a starsze poradniki instruują użytkowników, by tworzyli pliki poleceniem “copy CON”.

Gdyby ta reguła została usunięta, każdy skrypt przekierowujący dane wyjściowe do NUL zacząłby zamiast tego zapisywać rzeczywiste pliki.

Reguła ta powodowała kiedyś awarie całych komputerów. Windows 95 i Windows 98 odrzucały ścieżki zawierające jedną nazwę urządzenia, ale ulegały awarii, gdy ścieżka zawierała dwie takie nazwy, na przykład C:\con\con. W biuletynie MS00-017 z marca 2000 roku MS przyznał, że “zwykle prowadzi to do awarii”.

Przetestowałem regułę z epoki DOS-a w Windows 11 26H2 i nazwa NUL.txt przeszła bez problemu

Na komputerze z systemem Windows 11 26H2 próba zmiany nazwy nowego folderu na CON spowodowała wyświetlenie komunikatu “Określona nazwa urządzenia jest nieprawidłowa”. Nazwy PRN, AUX, NUL i COM1 również zostały odrzucone.

Jednak nazwa NUL.txt została zaakceptowana bez błędu, podobnie jak CON.txt, mimo że dokumentacja MSu nadal stwierdza, że NUL.txt jest równoważne NUL.

Folders renamed to CON.txt and NUL.txt despite MS documentation stating that this is not possible

Choć dokumentacja MSu nie została zaktualizowana, deweloperzy analizujący obsługę systemu Windows w Pythonie zauważyli w 2022 roku, że Windows 11 przestał traktować nazwy urządzeń z rozszerzeniami jako specjalne podczas przetwarzania ścieżek plików.

Niestety takie pliki mogą zachowywać się w nieprzewidywalny sposób. Jeden z użytkowników MS Q&A odkrył, że PowerShell mógł wyświetlić NUL.txt na liście, ale nie był w stanie go otworzyć ani usunąć. Doradca społeczności odpowiedział, że “rezultat może być nieprzewidywalny”. Może to wyjaśniać, dlaczego MS nadal utrzymuje, że rozszerzenia nie mają wpływu na nazwy takie jak NUL.txt i CON.txt.

A developer reporting that a reserved file name with an extension cannot be parsed to the corresponding NT path

Wiersz polecenia nadal pozwala zademonstrować stare zachowanie DOS-a. Uruchomienie polecenia echo hello > CON wyświetliło słowo “hello” na ekranie zamiast utworzyć plik, natomiast polecenie echo test > COM¹ zakończyło się niepowodzeniem dokładnie tak, jak opisuje to dokumentacja MSu.

Zanim skrytykujemy Windows, warto zauważyć, że w 2024 roku opiekunowie Linuksa zmienili nazwę pliku sterownika graficznego z aux.c na auxch.c, ponieważ pierwotna nazwa uniemożliwiała użytkownikom klonowanie jądra Linuksa w systemie Windows.

Windows nadal zasługuje jednak na krytykę, ponieważ Linux zmienił swój kod, aby dostosować go do systemu Windows, podczas gdy Windows wciąż zachowuje regułę z 1981 roku ze względu na skrypty, których być może nikt nie modyfikował od dziesięcioleci.

Windows 11 złagodził ograniczenie na tyle, by zezwolić na NUL.txt, ale CON nadal jest traktowane jako urządzenie, a nie nazwa pliku. Podobnie jak menedżer sterty z Windows 95, który nadal jest dostarczany z Windows 11, jest to kolejny starszy komponent, którego MS nie może usunąć bez ryzyka uszkodzenia czyjegoś 30-letniego pliku wsadowego.

Windows Latest jest zależny od czytelników takich jak Ty. Ustaw nas jako preferowane źródło w Google Discover i wyszukiwarce Google oraz pomóż naszym niezależnym materiałom dotrzeć do większej liczby osób.

BliskoWitamy w whokeys Zaloguj się.

Nie jesteś jeszcze zarejestrowany?   Zapisz się teraz

Zaloguj się za pomocą konta strony trzeciej:

  • google
  • Twitch
  • Youtube

BliskoWitamy w whokeys Zarejestruj się.

  • Adres e-mail *(Used To Receive Key)

    Proszę wpisać prawidłowy email.

  • Hasło*

    6 do 16 liter, cyfr i znaków specjalnych.

  • Potwierdź hasło*

  • Imię* Nazwisko*

  • Przeczytałem i zgodziłem się na 
    Zapisz się do ofert whokeys, newslettera konkursów.

Masz już konto whokeys?   Zapisz się teraz

Zaloguj się za pomocą konta strony trzeciej

  • google
  • Twitch
  • Youtube

Blisko

Skłonić:

Program został pomyślnie przesłany do systemu

Blisko

Skłonić:

Program został pomyślnie przesłany do systemu

Blisko

Skłonić:

System jest zajęty. Poczekaj i spróbuj ponownie.

BliskoRejestracja udana

BliskoKontrola bezpieczeństwa

Do Twojego koszyka została dodana nowa pozycja.

BliskoSposób wysyłki

Dostawa do:
Opłata przewozowa * Szacowany czas wysyłki Możliwość śledzenia Przewoźnik
*Opłata szacunkowa, rzeczywista kwota jest obliczana podczas realizacji transakcji.
0
Czat na żywo