Hallo,
wie mache ich denn am besten folgendes: Ich habe ein Verzeichnis mit Unterverzeichnissen. Auf einige davon (selektiert einerseits nach Teilen des Verzeichnisnamens, andererseits nach Erstellungsdatum der Dateien darin) möchte ich in einem anderen Verzeichnis eine Verknüpfung erstellen, aber nur, wenn es diese Verknüpfung noch nicht gibt.
Kernproblem ist schonmal das erstellen der Verknüpfung - wie mache ich das?
...Und der Nachsatz mit dem 'wenn es diese noch nicht gibt' - das deswegen weil ja, wenn man sonst im explorer eine Verknüpfung erstellt, eben nicht gefragt wird 'gibt's schon, überschreiben?', sondern stumpf eine neue mit (2) dahinter angelegt wird...
wie immer dankbar für eure Hilfe,
Gruss,
Jo
EDIT: Muss ja sagen dass Python in diesem Fall nur meine zweite Wahl war, aber anscheinend gibt es in Batch keine Möglichkeit dass halbwegs einfach zu machen... Und ich will nun nicht noch extra VB lernen...
Win XP: Verknüpfung mit Python erstellen
...und nach kurzem Test scheints das auch echt nicht zu geben unter XP:
Code: Alles auswählen
from os import link
ImportError: cannot import name link
>>>
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
XP unterstützt keine Symlinks wie sie aus Linux bekannt sind, das geht erst ab Vista (und ich denke os.link geht dort auch nicht, weil bisher keiner da was dran gemacht hat), XP selbst unterstützt vom NTFS her nur die Junction Points, das sind Verzeichnis-Symlinks.
Für die "Verknüpfungen", also dieser Binärschrott in den LNK-Dateien muss man wohl pywin32 nutzen. Wie der Aufruf genau aussieht habe ich auf die schnelle nicht herausgefunden. Aber schließlich habe ich auch kein Windows, also ist mein Interesse nur "schwach bis mäßig"
Für die "Verknüpfungen", also dieser Binärschrott in den LNK-Dateien muss man wohl pywin32 nutzen. Wie der Aufruf genau aussieht habe ich auf die schnelle nicht herausgefunden. Aber schließlich habe ich auch kein Windows, also ist mein Interesse nur "schwach bis mäßig"
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Hmja, das wäre ja eine super Vorlage für die bekannte und beliebte windows<->linux diskussion! Ich für meinen Teil bin mit XP jedenfalls ganz happy, läuft seit 3 Jahren ohne Mucken, ist in der Zeit nicht wesentlich lahmer geworden und ich musste mich auch bisher nicht mit irgendwelchen technischen Details rumärgern wenn ich eigentlich was ganz anderes machen wollte. Was will man mehr?
Egal. Was ich ja eigentlich nur noch wissen wollte, pywin32 sieht ja schon so aus als wär's das was ich will, aber ich finde irgendwie keine richtige doku dazu. Hat da vielleicht jemand nen link?
Danke schonmal!
Egal. Was ich ja eigentlich nur noch wissen wollte, pywin32 sieht ja schon so aus als wär's das was ich will, aber ich finde irgendwie keine richtige doku dazu. Hat da vielleicht jemand nen link?
Danke schonmal!
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Eine (etwas dünne) Dokumentation ist im Paket mitgeliefert, ansonsten gibt es nur die Codeschnippsel die man im Internet so findet und die MSDN, wo man oft die C-Beispiele für pywin32 adaptieren kann.jo_hb hat geschrieben:Was ich ja eigentlich nur noch wissen wollte, pywin32 sieht ja schon so aus als wär's das was ich will, aber ich finde irgendwie keine richtige doku dazu.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
http://de.wikipedia.org/wiki/Symbolisch ... ng#Windows...
Seit Windows NT 6.0 (Windows Vista, Windows 2008) stehen echte symbolische Links zur Verfügung, die transparent im Dateisystem vorliegen und auf Dateien, Verzeichnisse oder UNC-Pfade verweisen können. Symbolische Links dürfen allerdings nur mit Administratorrechten angelegt werden.
...
Eine weitere Möglichkeit in älteren Versionen von Windows sind sogenannte Abzweigungspunkte (englisch: „junction points“), welche jedoch das Dateisystem NTFS 5 oder ab Version 3.0 (Windows 2000, Windows XP, Windows 2003 und Windows Vista) voraussetzten. Diese sind den symbolischen Verknüpfungen auf Verzeichnisse sehr viel ähnlicher als die üblichen Verknüpfungen.
...
Mal abgesehen davon, dass es ziemlich cool wäre, dass auch für Windows zu haben, stehe ich der Idee an sich etwas skeptisch gegenüber. Windows nutzt die Junctions noch nicht mal selbst ... insofern würde mich wundern, wenn Junctions und Symlinks hohe Priorität bei den Maintainern von NTFS hat. Außerdem ist das aus Linux-Sicht auch eher unglücklich, da iirc weder ntfs3g noch das Kernel-Modul Junctions unterstützen. Ich glaube, nicht mal der Paragon-Treiber kommt damit zurecht.Leonidas hat geschrieben:Wird eigentlich ``os.link`` mal angepasst, die zu nutzen?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich denke schon, dass XP und Vista die irgendwo nutzen (vielleicht bei diesem Overlay-Dateisystemen irgendwie), sonst würde die Microsoft wohl eher kaum aufgenommen haben, denn den Wunsch nach Symlinks haben sie ja erfolgreich jahrzehntelang ignoriert und sogar mit dem Binärschrott das Rad selbst noch mal erfunden.lunar hat geschrieben:Mal abgesehen davon, dass es ziemlich cool wäre, dass auch für Windows zu haben, stehe ich der Idee an sich etwas skeptisch gegenüber. Windows nutzt die Junctions noch nicht mal selbst ... insofern würde mich wundern, wenn Junctions und Symlinks hohe Priorität bei den Maintainern von NTFS hat.
Naja, Wine unterstützt vielleicht auch nicht alles was man mit pywin32 und ctypes hinbekommt, trotzdem ist es gut dass es unter Windows geht. Die Implementation von Windows-only Features dadurch zu verzögern, dass sie unter Linux nicht verfügbar sind mutet etwas seltsam an. Aber ich denke ich verstehe was du meinst.lunar hat geschrieben:Außerdem ist das aus Linux-Sicht auch eher unglücklich, da iirc weder ntfs3g noch das Kernel-Modul Junctions unterstützen. Ich glaube, nicht mal der Paragon-Treiber kommt damit zurecht.
Wir werden ja noch sehen wie es mit den Symlinks auf Windows weitergeht, bisher wird Vista ja generell eher abgelehnt (wie so ziemlich jede Windows-Version anfangs) und Programme die die NTFS Symlinks nutzen sind mir auch nicht bekannt. Aber das kann ich wenigstens darauf schieben, dass ich kein Windows habe.
Allerdings ist das etwas seltsam, da NTFS in XP die Version 3.1 trägt und selbiges auch bei Vista, daher wundert es mich, wo auf einmal der Symlink-Support herkommt (laut Wikipedia heißen die manchmal auch NTFS 5.1 und 6.0, aber das schiebe ich auf die Windows-Versionen die jeweils 5.1 und 6.0 sind; die deutsche Wikipedia wird in der Hinsicht ganz konfus).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Diesen "Binärschrott" gibt es auch unter Linux, nur eben nicht binär, und eigentlich ist es auch kein Schrott. Symbole zu definieren oder das Arbeitsverzeichnis anzupassen, ist nämlich mit Symlinks nicht möglich, weswegen es unter Linux seit längerem Desktop-Dateien gibt, die es ja auch bis zum Freedesktop-Standard gebracht haben.Leonidas hat geschrieben:Ich denke schon, dass XP und Vista die irgendwo nutzen (vielleicht bei diesem Overlay-Dateisystemen irgendwie), sonst würde die Microsoft wohl eher kaum aufgenommen haben, denn den Wunsch nach Symlinks haben sie ja erfolgreich jahrzehntelang ignoriert und sogar mit dem Binärschrott das Rad selbst noch mal erfunden.lunar hat geschrieben:Mal abgesehen davon, dass es ziemlich cool wäre, dass auch für Windows zu haben, stehe ich der Idee an sich etwas skeptisch gegenüber. Windows nutzt die Junctions noch nicht mal selbst ... insofern würde mich wundern, wenn Junctions und Symlinks hohe Priorität bei den Maintainern von NTFS hat.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Also zumindest zweiteres funktioniert mit kleinen Shell-Skripten überaus gut und recht flexibel.lunar hat geschrieben:Symbole zu definieren oder das Arbeitsverzeichnis anzupassen, ist nämlich mit Symlinks nicht möglich, weswegen es unter Linux seit längerem Desktop-Dateien gibt, die es ja auch bis zum Freedesktop-Standard gebracht haben.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice