BAT soll Pfad lesen und Verknüpfung anlegen

Winter88

Ensign
Registriert
Okt. 2009
Beiträge
222
Hallo,
ich bräuchte am liebsten eine BAT Datei oder halt ein Programm, die einen Ordnerpfad auslesen kann und für den Fall, dass ein bestimmter Ordnername auftaucht, soll er den Pfad für den Ordner verknüpfen unter Eigene Dateien. Dabei soll er aus dem Ordnerpfad auch den Namen der Verknüpfung auslesen.

Prüfen ob es im Pfad "C:\Programme\A\" einen Ordner C gibt
"C:\Programme\A\...\...\B\...\...\C\"

falls ja, dann unter "C:\Users\Username\Eigene Dateien\"
eine Verknüpfung zum Ordner C mit dem Namen B anlegen
"C:\Users\Username\Eigene Dateien\B"

jedoch, ist diese Verknüpfung zum Ordner C schon vorhanden, dann soll er diese natürlich nicht mehr anlegen

Das soll er für jeden Ordner durchführen, welcher unter "C:\Programme\A\..."

Ich suche nebenbei weiter bei Google etc. ob es bereits für so etwas eine Lösung gibt
oder bastel mir meinen eigenen Weg
trotzdem im vorraus danke für eure Ratschläge
 
Ich würde das mit Powershell umsetzen. Sollte relativ einfach sein, wenn du dich damit auskennst. Ich kann dir auch nach der Mittagspause so ein Script schreiben, der das macht, falls du interesse hast und Zeit. Wobei ich nicht weiß, ob ich das heute noch schaffe :)

Könntest das ja mit Powershell anfangen und bei fragen, kannste die raushauen.
 
Ich hock mich mal vor PowerShell, habe bisher noch nicht damit gearbeitet aber irgendwann fängt jeder mal an
 
Oh okey. Dann wirds glaub ich net so schnell was werden :) Powershell ist sehr mächtig, aber wenn du Programmieren kannst, ist die Logik dahinter sehr einfach zu verstehen.


Hier hab ich ein paar Auszüge aus dem Internet schnell rausgekramt, die dir helfen werden.

Verknüpfung erstellen:
Code:
$link = $wshshell.CreateShortcut(”$home\Desktop\Verknuepfung.lnk”)
$link.targetpath = "C:\test.txt"
$link.save()


Damit findest du Ordner in einem Ordner:
Code:
$junkall=get-childitem c:junk | where {$_.psIsContainer -eq $true}

Powershell arbeiten mit mächtigen Pipes wie du siehst. Dort oben, für die schnelle erklärung, nimmt er eine Variable (Sieht man an $Zeichen), weißt der Variable alle Kinditems zu aus c:junk (Ist der c\windows\junk Ordner, gibts in der Deutschen Clientversion nicht), bevor er sie in die Variable schreibt, filtert er durch die Pipe dann alles mit Where (wo folgendes erfüllt ist) : -eq steht für == in Programmieren (Equals), dann fragt er mit $_ (Bedeutet der derzeitige ausgabe aus der Pipe, also was du gerade hast, aktueller Zustand), wo eben einfach das Attribute (bist du ein Contrainer(Ordner)) true. Mehr ist es nicht :)

Relativ einfach wenn man Programmieren kann.


Sag mir einfach, wenn du wo nicht weiterkommst. Kann sein das ich mehrere Stunden nicht antworte, bzw erst morgen. Muss hier noch was machen und Mittag machen und solch Hexenwerk :)
 
Kann bei mir auch länger dauern, also kein problem :)
Hab eh wirklich erst nachher Zeit mich damit zu beschäftigen.
Aber ich denke mit dem was du geschrieben hast, komme ich schon ein ganzes Stück voran.
 
Zurück
Oben