moses-south
Goto Top

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.
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 face-smile

Grüsse

moses-south

Content-ID: 299468

Url: https://administrator.de/contentid/299468

Ausgedruckt am: 25.11.2024 um 09:11 Uhr

MrCount
Lösung MrCount 18.03.2016 um 12:35:21 Uhr
Goto Top
Hi moses-south,

was steht denn genau in der %temp%\MakeShortCut.vbs , bevor sie gelöscht wird?
moses-south
moses-south 18.03.2016 um 12:55:00 Uhr
Goto Top
Hallo MrCount

Bevor das Script ausgeführt wird, steht folgendes drinnen:

Set objShell=WScript.CreateObject("Wscript.Shell")  
Set objShortcut=objShell.CreateShortcut("C:\TEMP\Ordner\00Projekte\00Projektliste\\P16.0001 - Test 1.lnk")   
objShortcut.TargetPath="C:\TEMP\Ordner\00Projekte\01Aktuell\\P16.0001\"  
objShortcut.Save

Das Ergebnis ist dann wie folgt:
capture

Anmerkung: Ich habe jetzt auf lokal gewechselt, da ich nicht mehr in der Firma bin, deswegen C:\TEMP

Grüsse moses
114757
Lösung 114757 18.03.2016 aktualisiert um 13:01:05 Uhr
Goto Top
Can you see the wrong double Backslash in your code face-wink

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.
MrCount
MrCount 18.03.2016 um 13:10:17 Uhr
Goto Top
Auf den doppelten Backslash wollte ich auch gerade hinweisen... ^^
moses-south
moses-south 18.03.2016 um 13:20:32 Uhr
Goto Top
Tatsache!

Den Wald vor lauter Bäumen und so...

Danke euch!

Gruss
moses