Verknüpfung mittels Batch erstellen - Punkt in Ziel, Ziel ist ein Ordner
Hallo Zusammen
Ich habe folgendes Problem:
Bei uns auf dem Fileserver wird für jedes Projekt, ein eigener Ordner mit der Projektnummer angelegt. Das Schema dieses Ordners ist immer identisch "PJJ.XXXX".
Somit beinhaltet der Ordner einen Punkt im Namen.
In einem weiteren Ordner werden Verknüpfungen angelegt, welche die Projektnummer und die Projektbezeichnung beinhaltet. Dies ist nötig, damit die User sich schneller zurechtfinden.
Nun möchte ich mittels eines Batch den kompletten Vorgang automatisieren, um die komplette Ordnerstruktur inklusive Zugriffsberechtigung in dem Projektordner anzulegen.
Dies klappt soweit alles wie gewünscht, bis auf die Verknüpfung.
Folgenden Code verwende ich, um die Verknüpfung anzulegen. Danke hierzu an @Phlegma und @bastla welche mir indirekt geholfen haben.
Die Variablen %Projektnummer% und %Projektname% werden im ersten Teil des Scripts angegeben.
Wenn ich diesen Code ausführe, wird eine Verknüpfung angelegt, mit dem Target Typ "XXXX File", aus der Projektnummer, und nicht "File folder". Somit funktioniert der Link natürlich nicht und führt ins leere.
Meine erste Überlegung war, dass es eventuell, vergleichbar mit "objShortcut.TargetPath", für "TargetType" gibt. Leider bin ich nicht fündig geworden. Oder habe ich in der angaben der Zeile objShortcut.TargetPath einen Fehler? Gefühlt müsste der letzte Backslash nach %Projektnummer% doch definieren, dass es sich um einen Ordner handelt. Macht er aber nicht...
Kennt ihr eine Lösung, damit die Verknüpfung automatisch angelegt werden kann?
Vielen Dank für eure Hilf und einen guten
Grüsse
moses-south
Ich habe folgendes Problem:
Bei uns auf dem Fileserver wird für jedes Projekt, ein eigener Ordner mit der Projektnummer angelegt. Das Schema dieses Ordners ist immer identisch "PJJ.XXXX".
Somit beinhaltet der Ordner einen Punkt im Namen.
In einem weiteren Ordner werden Verknüpfungen angelegt, welche die Projektnummer und die Projektbezeichnung beinhaltet. Dies ist nötig, damit die User sich schneller zurechtfinden.
Nun möchte ich mittels eines Batch den kompletten Vorgang automatisieren, um die komplette Ordnerstruktur inklusive Zugriffsberechtigung in dem Projektordner anzulegen.
Dies klappt soweit alles wie gewünscht, bis auf die Verknüpfung.
Folgenden Code verwende ich, um die Verknüpfung anzulegen. Danke hierzu an @Phlegma und @bastla welche mir indirekt geholfen haben.
SET QuelleStruktur=\\Server\Ordner\Vorlage
SET ZielVerknuepfungL=\\Server\Ordner\00Projekte\00Projektliste\
SET ZielVerzeichnisUSER=R:\Ordner\00Projekte\01Aktuell\
REM Verknuepfung im Ordner ZielVerknuepfungL auf das neue Projekt anlegen.
SET "Verknuepfungsname=%Projektnummer% - %Projektname%"
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%ZielVerknuepfungL%\%Verknuepfungsname%.lnk")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%ZielVerzeichnisUSER%\%Projektnummer%\">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs
cscript //nologo %temp%\MakeShortCut.vbs
del %temp%\MakeShortCut.vbs
Die Variablen %Projektnummer% und %Projektname% werden im ersten Teil des Scripts angegeben.
Wenn ich diesen Code ausführe, wird eine Verknüpfung angelegt, mit dem Target Typ "XXXX File", aus der Projektnummer, und nicht "File folder". Somit funktioniert der Link natürlich nicht und führt ins leere.
Meine erste Überlegung war, dass es eventuell, vergleichbar mit "objShortcut.TargetPath", für "TargetType" gibt. Leider bin ich nicht fündig geworden. Oder habe ich in der angaben der Zeile objShortcut.TargetPath einen Fehler? Gefühlt müsste der letzte Backslash nach %Projektnummer% doch definieren, dass es sich um einen Ordner handelt. Macht er aber nicht...
Kennt ihr eine Lösung, damit die Verknüpfung automatisch angelegt werden kann?
Vielen Dank für eure Hilf und einen guten
Grüsse
moses-south
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 299468
Url: https://administrator.de/contentid/299468
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
5 Kommentare
Neuester Kommentar
Can you see the wrong double Backslash in your code
in deinem Batchcode hast du einmal einen in deiner Variablen, setzt aber einen zweiten als du die Variablen zusammensetzt.
Gruß jodel32
p.s. Ordnerverknüpfungen mit Punkten im Namen sind kein Problem, gerade mal getestet.
Set objShortcut=objShell.CreateShortcut("C:\TEMP\Ordner\00Projekte\00Projektliste\\P16.0001 - Test 1.lnk")
in deinem Batchcode hast du einmal einen in deiner Variablen, setzt aber einen zweiten als du die Variablen zusammensetzt.
Gruß jodel32
p.s. Ordnerverknüpfungen mit Punkten im Namen sind kein Problem, gerade mal getestet.