Ist bei allen Windows-Versionen die Groß- / Kleinschreibung nicht relevant?


17

Ich weiß, dass bei Windows (im Allgemeinen) die Groß- und Kleinschreibung nicht berücksichtigt wird. Trifft dies auf alle Windows-Betriebssysteme zu (von Windows 95 bis Windows 7)? Gibt es eine Registrierungskonfiguration, bei der Windows zwischen Groß- und Kleinschreibung unterschieden wird?


2
Ja, ebenso wie alle Versionen von MS-DOS, von denen dieses Attribut geerbt wurde. (Natürlich hat MS-DOS die Groß- und Kleinschreibung nicht bewahrt, daher haben sich die Dinge weiterentwickelt :-).)
Richard

Groß- / Kleinschreibung unempfindlich gegenüber was? Dateinamen? Passwörter?
Peter Mortensen

Antworten:


14

Ja, dies gilt für alle Windows-Versionen. Es gibt keine Möglichkeit, Windows zwischen Groß- und Kleinschreibung zu unterscheiden. Beachten Sie jedoch, dass bei einigen Apps, die ursprünglich für Unix / Linux entwickelt und dann portiert wurden, die Groß- und Kleinschreibung berücksichtigt werden kann. Cygwin unterscheidet beispielsweise zwischen Groß- und Kleinschreibung. Dieses Verhalten ist jedoch äußerst selten.


6
"Es gibt keine Möglichkeit, Windows zwischen Groß- und Kleinschreibung zu unterscheiden." ist nicht ganz genau. Es gibt Möglichkeiten, bei Windows die Groß- und Kleinschreibung zu berücksichtigen, wie in den anderen Antworten erläutert.
Sleske

Aus Benutzersicht sind Windows-Dateinamen jedoch unabhängig von Groß- und Kleinschreibung, und es gibt keine (einfache) Möglichkeit, dies zu ändern.
Sleske

Bei einigen Aspekten von Windows kann zwischen Groß- und Kleinschreibung unterschieden werden, es hängt jedoch von den Funktionen anderer PCs ab. Wenn Sie in einem freigegebenen Verzeichnis speichern, das sich tatsächlich auf einem Linux-PC befindet, kann zwischen Groß- und Kleinschreibung unterschieden werden. Dies liegt am FILESYSTEM, wie @sleske sagte, nicht daran, dass "es Windows ist"
UtahJarhead

1
Das ist nicht ganz richtig. Mit Windows Services for UNIX können Sie Windows-Versionen und einige Desktop-Versionen so konfigurieren, dass die Groß- und Kleinschreibung berücksichtigt wird.
Keltari

1
@Matt Diese Antwort ist nicht richtig (obwohl es sich um passende Antworten handelt). Die Groß- und Kleinschreibung ist nicht aktiviert. superuser.com/questions/266110/… Ich muss eine Testdatei und eine Testdatei ablegen. /bIn/BaShfunktioniert nicht auf meinem System.
William

8

Tatsächlich hängt dies von dem von Ihnen (Ihrem Programm) verwendeten API / Windows-Subsystem ab.

Wenn Sie die " Windows-API " (der Standard für Windows-Apps) verwenden, wird bei Dateinamen die Groß- und Kleinschreibung nicht berücksichtigt. Wenn Sie jedoch das POSIX-Subsystem (auch bekannt als Windows Services for Unix) verwenden, können Sie die Unterscheidung zwischen Groß- und Kleinschreibung aktivieren.

Siehe z. B. diesen MS Support-Artikel: Groß- und Kleinschreibung bei Windows XP und Interix Subsystem oder SFU aktivieren


5

Cygwin versucht Unix zu emulieren. Daher muss die Groß- und Kleinschreibung beachtet werden, damit Anwendungen nicht unterbrochen werden. Windows an sich unterscheidet nicht zwischen Groß- und Kleinschreibung. Es geht um das Dateisystem. Weitere Informationen finden Sie unter Dateisystem, Dateisysteme unter Microsoft Windows (Wikipedia).


Richtig. NTFS ist case-sensitive, es ist nur in Windows deaktiviert. Man kann es aktivieren, aber es ist extrem unsupported... sozusagen.
Shiki

Dies richtet sich an die OP nicht MijndertStuij, aber ich wollte nicht auf die Zehen treten. Er hat den Repräsentanten in diesem Fall verdient. Egal, ob es sich um FAT (wie die ursprünglichen MS-DOS- und Windows-Versionen) oder NTFS (Windows NT und höher) handelt, die Groß- und Kleinschreibung wird nicht berücksichtigt. Sie werden diese Unterschiede ein wenig bemerken, wenn Sie Dateien über Samba (der Cousine von File and Print Sharing) auf einem Linux-Dateisystem speichern.
UtahJarhead

Auf der Wikipedia NTFS-Seite: Zulässige Zeichen in Dateinamen. - Im Posix-Namespace alle UTF-16-Codeeinheiten (Groß- und Kleinschreibung beachten) mit Ausnahme von U + 0000 (NUL) und / (Schrägstrich). In Win32-Namespace alle UTF-16-Codeeinheiten (ohne Berücksichtigung der Groß- / Kleinschreibung) außer U + 0000 (NUL) / (Schrägstrich) \ (umgekehrter Schrägstrich): (Doppelpunkt) * (Sternchen)? (Fragezeichen) "(Anführungszeichen) <(kleiner als)> (größer als) und | (Pipe) [5]
UtahJarhead

Versuchen Sie, /bIn/BaShin Cygwin zu laufen, und sagen Sie mir erneut, dass zwischen Groß- und Kleinschreibung unterschieden wird.
Matt

4

Das ist von hier . Sie können den HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitiveRegistrierungswert auf den 0von anderen Autoren vorgeschlagenen Wert festlegen . Erstellen Sie eine Datei add.regmit dem folgenden Namen und führen Sie sie aus.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel]
"obcaseinsensitive"=dword:00000000

Verwenden Sie dann Cygwin , um mit Dateinamen zu arbeiten, bei denen zwischen Groß- und Kleinschreibung unterschieden wird.

Zu diesem Zweck müssen Sie NTFS-Dateisysteme mit der posix=1Option in Ihrem bereitstellen /etc/fstab, wie in diesem Artikel vorgeschlagen . Hier ist ein Ausschnitt aus meinem fstab:

none                    /cygdrive       cygdrive        binary,posix=1,user             0 0
C:                      /cygdrive/c     ntfs            binary,posix=1,user,auto        0 0
C:/Users                /home           ntfs            binary,posix=1,user,auto        0 0

Sobald das oben Genannte erledigt ist, können Sie mit,, usw. mit Dateinamen umgehen, bei denen zwischen Groß- und Kleinschreibung bashunterschieden mcwird git.

Stellen Sie sicher, dass Sie nach dem Bearbeiten von beiden einen Neustart durchführen.


4

Microsoft hat ein neues case sensitive Flag (Attribut) hinzugefügt, das auf NTFS-Verzeichnisse (Ordner) angewendet werden kann. Bei Verzeichnissen, für die dieses Flag gesetzt (aktiviert) ist, wird bei allen Vorgängen für Dateien in diesem Verzeichnis zwischen Groß- und Kleinschreibung unterschieden, unabhängig davon, ob FILE_FLAG_POSIX_SEMANTICS angegeben wurde. Dies bedeutet, dass, wenn Sie zwei Dateien haben, die sich nur in Groß- und Kleinschreibung unterscheiden, alle Anwendungen darauf zugreifen können.

Ab Windows 10 Build 17107 bietet Microsoft die Möglichkeit, dieses Flag im Befehl fsutil.exe anzuzeigen und zu ändern.

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob bei einem Verzeichnis zwischen Groß- und Kleinschreibung unterschieden wird:

fsutil.exe file queryCaseSensitiveInfo <path>

So kennzeichnen Sie ein Verzeichnis als Verzeichnis, bei dem zwischen Groß- und Kleinschreibung unterschieden wird bzw. bei dem die Groß- und Kleinschreibung nicht beachtet wird:

fsutil.exe file setCaseSensitiveInfo <path> enable
fsutil.exe file setCaseSensitiveInfo <path> disable

3

Barfieldmv ist richtig. Das Dateisystem unterscheidet in der Tat zwischen Groß- und Kleinschreibung und die Dateien werden mit der entsprechenden Groß- und Kleinschreibung gespeichert. Die Dateizugriffsebene ist dafür verantwortlich, die Groß- und Kleinschreibung zu entfernen, wenn Dateien mit neuen Dateideskriptoren abgeglichen werden


1
Können Sie weitere Details zur Funktionsweise dieser Abstraktion zwischen dem Dateisystem und dem Benutzer bereitstellen (dh ein schrittweises Beispiel bereitstellen)? Sie sollten sich auch mit den aktuellen Fragen des Betriebssystems zu früheren Betriebssystemen befassen und prüfen, ob ein Verhalten erzwungen werden kann, bei dem zwischen Groß- und Kleinschreibung unterschieden wird.
MaQleod

Heutzutage kann ich keine vollständige Antwort geben, da ich jetzt ein riesiger Linux-Nerd bin. Ich kann jedoch Folgendes anbieten. Windows Services for Unix verwendet die gleichen Dateisysteme wie das Betriebssystem, insbesondere, indem keine APIs verwendet werden, die die Unterscheidung zwischen Groß- und Kleinschreibung ermöglichen. Siehe: support.microsoft.com/kb/817921 für Informationen darüber , wie Fall ‚Erhaltung‘ ist die gleiche wie Fall ‚Sensitive‘ aber die gemeinsamen Zugriffsschichten für Case ‚Ignoranz‘ erlaubt :)
whardier

Man könnte sagen, dass Windows nicht zwischen Groß- und Kleinschreibung unterscheidet, sondern nur zwischen Groß- und Kleinschreibung. Das bedeutet, dass es (Windows) weiß, ob der Buchstabe in Groß- oder Kleinschreibung geschrieben ist und beide akzeptiert. Es liest nicht den einen oder anderen als und Fehler.
IGRACH
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.