Wie kann ich in Windows 7 überprüfen, ob eine Datei eine symbolische Verknüpfung ist oder nicht, ob ein Ordner eine Verknüpfung ist oder nicht, und wie kann ich überprüfen, wohin sie zeigen (falls es sich um eine symbolische Verknüpfung / Verknüpfung handelt). Sowohl im Explorer als auch in der Befehlszeile.
Es ist sehr wichtig, eine Möglichkeit zu haben, dies über die Befehlszeile zu tun, um zu wissen, wie symbolische Links auf einem anderen Computer dupliziert werden, wenn Sie eine exakte Replik eines Ordnerbaums erstellen möchten.
Wenn ich mit der rechten Maustaste auf eine Datei klicke und "Eigenschaften" überprüfe, kann ich keinen Hinweis darauf finden, dass es sich um einen symbolischen Link handelt.
quelle
dir /a
Geben Sie in der Befehlszeile Folgendes ein und drücken Sie die Eingabetaste. Wenn Sie das / a nicht einschließen, listet Windows keine Knotenpunkte auf. Sie können den Unterschied zwischendir
unddir /a
auf Verzeichnis versuchen\Users\YourUsername
Von StackOverFlow kopiert , habe ich gerade diese Zeile verwendet, und es funktioniert
fsutil reparsepoint query "folder name" | find "Symbolic Link" >nul && echo symbolic link found || echo No symbolic link
Erklärung :
Von MSDN über FSUtil: Führt Aufgaben aus, die sich auf FAT- (File Allocation Table) und NTFS-Dateisysteme beziehen, z. B. das Verwalten von Analysepunkten, das Verwalten von Dateien mit geringer Dichte oder das Aufheben der Bereitstellung eines Volumes. Wenn es ohne Parameter verwendet wird, zeigt fsutil eine Liste der unterstützten Unterbefehle an.
Für unsere Anwendung, wir kümmern uns nur , dass es eine Linie gibt , die „symbolische Verknüpfung“ in ihm, wenn es symbolisch ist, die wir dann
find
, und wennfind
erfolgreich ist , geben wir eine Sache, wenn dies nicht der Fall, geben wir etwas anderes.Anmerkungen :
quelle
Mit PowerShell können Sie unter mindestens Windows-Betriebssystemen symbolische Links in einem bestimmten Verzeichnis finden, z.
Eine prägnantere Alternative wäre die Verwendung
Get-ChildItem
des Aliasls
:Und Sie können relevante Informationen zu einem symbolischen Link erhalten, indem Sie einen der folgenden Schritte ausführen:
Ruft das Dateielement ab und gibt dessen Target-Eigenschaft aus . Ziel ist der "Wert" des symbolischen Links. Zusätzlich können Methoden- oder Befehlssignaturen zum Erstellen von Symlinks beim Nebeneinanderstellen von Betriebssystemen die Argumentnamen 'Ziel', 'Pfad' und / oder 'Wert' eine andere Bedeutung haben als eine andere Methodensignatur auf einem anderen Betriebssystem.
Ruft das Dateielement ab und gibt dessen LinkType-Eigenschaft aus . Ein Element mit einem LinkType-Wert von SymbolicLink bedeutet, dass es symbolisch ist.
Ruft das Dateielement ab und gibt dessen Mode-Eigenschaft aus . Ein Element mit
l
dem Wert Mode zeigt an, dass es sich um eine symbolische Verknüpfung handelt.Rufen Sie das Dateielement ab und geben Sie die Eigenschaft Attributes aus . Ein Element zugeschrieben mit einem ReparsePoint Wert vielleicht bezeichnend auf einen symbolischen-Link.
quelle
Verwenden Sie
fsutil
diese Option nicht, um zu überprüfen, ob ein Element ein symbolischer Link ist oder nicht. Zuerst, weil errorlevel Fehler enthält, bleibt es manchmal auf 0 und ein realer Ordner wird als symbolischer Link angesehen. Errorlevel ist nicht vertrauenswürdig.Ein Problem mit
find
ist, weilfind "Symbolic Link"
es in Englisch möglich ist, aber nicht in anderen Sprachen.Der gute Weg ist, anhand der Attribute zu suchen:
Attribute, die mit% a erhalten wurden, sind "drahscotlep" und "l" steht für eine symbolische Verknüpfung.
quelle
Hier ist ein Cygwin-Bash-Skript zum Speichern von Symlinks und zum Hinzufügen Ihrer Lieblingsordner zur ersten Zeile
quelle
In Powershell:
quelle
alle Kredite an @SecurityAndPrivacyGuru , [cmd]
Komplettes Batch-Skript / Funktion, die symlink {| s in folder} liest und eine Liste mit ihnen und ihren Zielpfaden ausgibt
quelle
Wenn Sie fsutil wirklich verwenden möchten, können Sie beide Techniken verwenden, um einen Fehler auf Errolevel zu verhindern. (Ich benutze ver> nul, um den Fehlerlevel zurückzusetzen.)
quelle