Wie erstelle ich einen Ordnernamen oder Dateinamen mit Sonderzeichen wie \ /: *? "<> | [Duplikat]

9

Mein Problem ist, dass ich den Namen meines Ordners oder meiner Datei nicht mit Sonderzeichen wie \ /: * angeben kann. "<> | in Windows-basierten Betriebssystemen Dies ist für mich sehr wichtig, den Namen der Datei / des Ordners anzugeben, die diese Art von Zeichen enthält.

Ich suche und verweise bereits so viele Seiten auf diese Probleme, aber alle sind hoffnungslos. Ich habe auch die Microsoft-Support-Seite gelesen. Sie schlagen vor, andere Zeichen zu verwenden. Dies ist der Link https://support.microsoft.com/en-us/kb/177506

Ich versuche bereits, die Alt-Taste + die ASCII-Codenummer dieser Art von Sonderzeichen über die Zifferntaste zu drücken. Benennen Sie einfach die Datei / den Ordner um und drücken Sie Alt + 60 (für <Zeichen). Es wird immer noch die Meldung angezeigt, dass ein Dateiname keine der folgenden Angaben enthalten kann Figuren: \ / : * ? "<> |

Schlagen Sie mir eine geeignete Lösung vor, damit ich den Namen meiner Datei / meines Ordners mit dieser Art von Sonderzeichen angeben kann.

Kirit_Vanani
quelle
Nur neugierig: Wofür brauchst du es?
Kamil Maciorowski
@ kamil Dies ist der Name meiner Datei / meines Ordners und eine herausfordernde Aufgabe für mich.
Kirit_Vanani
@ PIMP_JUICE_IT Ich habe es bereits getan (literalString -literalPath, aber immer noch nicht erfolgreich.
Kirit_Vanani
Selbst wenn Sie Dateien mit diesen Zeichen erstellen könnten , könnte kein Programm sie öffnen oder speichern.
Keltari
10
- Wie kann ich meinen Ellbogen lecken? - Das kannst du nicht. - Aber ich muss. - Sie können Ihren Arm brechen und versuchen, aber Ihr Arm wird dann nutzlos sein. - Es ist mir egal, ich muss nur meinen Ellbogen lecken.
Kamil Maciorowski

Antworten:

16

Dies ist sehr wichtig für mich, wenn ich die Datei / den Ordner benenne, die diese Zeichen enthalten.

Es mag für Sie wichtig sein, aber Sie müssen dies loslassen und einen anderen Weg finden, um Ihr Problem zu lösen.

Diese Zeichen sind in den Windows OS-Funktionsaufrufen, die Dateinamen verarbeiten, nicht zulässig.

Sie sind ausdrücklich nicht erlaubt, weil sie eine andere Verwendung haben:

  • \- Reserviert für die Verwendung als Pfadtrennzeichen und Escape- Zeichen
  • / - Reserviert für die Verwendung als Pfadtrennzeichen
  • : - Reserviert für die Verwendung als Laufwerksnamenbegrenzer
  • *und ?- reserviert für die Verwendung als Wildcard - Zeichen
  • "- für die Verwendung reserviert Zitat enthält Namen Leerzeichen
  • <, >und |- für die Verwendung als Befehl reserviert Umleitung Operatoren

Sie können natürlich Dateien mit Namen, die diese Zeichen enthalten, mit einem anderen Betriebssystem erstellen (sofern dieses Betriebssystem ein Windows-Dateisystem lesen / schreiben kann).

Sie können jedoch mit Windows-Programmen nichts mit diesen Dateien tun, und sie verstehen die Dateinamen nicht und erzeugen Fehler.


Benennen von Dateien, Pfaden und Namespaces

Regeln der Namensgebung

Die folgenden grundlegenden Regeln ermöglichen es Anwendungen, gültige Namen für Dateien und Verzeichnisse unabhängig vom Dateisystem zu erstellen und zu verarbeiten:

...

Verwenden Sie ein beliebiges Zeichen auf der aktuellen Codepage für einen Namen, einschließlich Unicode-Zeichen und Zeichen im erweiterten Zeichensatz (128–255), mit Ausnahme der folgenden:

  • Die folgenden reservierten Zeichen:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • Ganzzahliger Wert Null, manchmal auch als ASCII-NUL-Zeichen bezeichnet.
  • Zeichen, deren ganzzahlige Darstellungen im Bereich von 1 bis 31 liegen, mit Ausnahme alternativer Datenströme, in denen diese Zeichen zulässig sind. Weitere Informationen zu Dateistreams finden Sie unter Dateistreams.
  • Alle anderen Zeichen, die das Zieldateisystem nicht zulässt.

Source Benennen von Dateien, Pfade und Namespaces


Aber ich möchte das trotzdem wirklich tun.

Installieren Sie cygwin und verwenden Sie touch.

Ich habe nicht alle Möglichkeiten getestet, aber die folgende Arbeit:

touch :
touch \|
touch \"
touch \>

Beispielausgabe:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

Wie Sie sehen, können sie unter Windows nicht verwendet werden:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

Geben Sie hier die Bildbeschreibung ein

DavidPostill
quelle
Ich freue mich über Ihre Antwort, sie ist ein bisschen hilfreich, aber mein Problem bleibt gleich. Ich denke, jeder andere Superuser-Weg, um mit diesem Sonderzeichen umzubenennen.
Kirit_Vanani
2
@Kirit Sie können Dateien mit diesen Zeichen erstellen, Windows kann jedoch nichts damit tun, und es werden Fehler angezeigt, wenn Sie versuchen, diese Dateien in Windows zu verwenden.
DavidPostill
@ DavidPostill Ohh, wie man einen Dateinamen mit diesen Zeichen erstellt. Es macht mir nichts aus, wenn es einen Fehler gibt, aber jetzt besteht die Aufgabe darin, diese Art von Charakternamen
anzugeben
1
@Kirit Ich habe Ihnen bereits in der Antwort gesagt: "Sie können natürlich Dateien mit Namen, die diese Zeichen enthalten, mit einem anderen Betriebssystem erstellen (sofern dieses Betriebssystem ein Windows-Dateisystem lesen / schreiben kann)."
DavidPostill
3
@Kirit Ich habe dir schon gesagt, dass es nicht möglich ist .
DavidPostill
3

Erstellen Sie Ihren eigenen Schriftsatz. Ersetzen Sie einige der Zeichen, die Sie nicht verwenden, durch die Bilder der reservierten Zeichen.

Clayton
quelle
1
Das oder mit ähnlichen Zeichen. Mit Unicode ist alles möglich. 🎃
Daniel B
@ Craig620 Vielleicht wird es für mich nicht möglich sein. kann mir einen Hinweis dafür geben.
Kirit_Vanani
Ich bin mir nicht sicher, nur eine verrückte Idee, die mir in den Sinn kam. Vielleicht gibt es ein Stack Exchange-Forum für Typografie oder Veröffentlichung, das Sie fragen könnten?
Clayton
2

In Windows können Sie keine Dateien mit diesen Zeichen erstellen. Es gibt keine Lösung, diese Zeichen sind von der Win32-API verboten.

Win32 ist eine Teilmenge des POSIX-Namespace und unterscheidet nicht zwischen Groß- und Kleinschreibung. Es werden alle Unicode-Zeichen verwendet, außer: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB Namen dürfen nicht mit Punkt '.' Oder Leerzeichen '' enden.

- http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

ChrisInEdmonton
quelle
NTFS ist nicht das Problem. (Tatsächlich erlaubt es diesen Zeichen ganz gut - es musste für die Interix-Unterstützung.) Das Problem ist Windows selbst, das heißt, die Einschränkungen werden von Win32-APIs auferlegt, unabhängig davon, welcher FS zugrunde liegt.
user1686
@grawity, Sie scheinen aufgrund meiner weiteren Untersuchungen korrekt zu sein. Ich habe meine Antwort bearbeitet, um dies widerzuspiegeln.
ChrisInEdmonton
Ich denke, NTFS ist kein Problem. Es muss eine Lösung haben. Wenn ich von einem Linux-basierten Betriebssystem aus auf ein NTFS-Laufwerk zugreife, kann ich diese Art von Zeichen eingeben.
Kirit_Vanani
"Namen können nicht mit Punkt enden". Falsch. Sie können Dateinamen eingeben, die auf enden .. Sie können einfach nicht viel mit ihnen machen von cmd:)
DavidPostill
1
@Kirit Dir wurde oft gesagt, dass es nicht möglich ist .
DavidPostill