temporärer vbs-Script zur Linkerstellung
Hallo liebe Geminde, ich habe den Script hier im Forum gefunden. Wollte fragen ob es möglich ist damit mehrere Links zu erstellt ohne das ich den Script dauernd wiederholen muss. Habe es mit for schleife versucht aber scheinbar irgendwas falsch gemacht.
Von vbs hab ich noch so gut wie überhaupt keine Ahnung, aber auch wenn den Teil mit in die Klammer packe wird nur eine Datei benannt und die Variable "DATEI" wird auch nicht gefunden.
Alternativ habe ich noch eine möglichkeit mit der rundll32 entdeckt:
Aber hier weiss ich nicht wie es und ob es automatisch anblaufen kann. Habe versucht noch was anzuhängen aber auch nach langer suche keine Beispiele zum erweitern gefunden.
Gruß waldgnarf
[Edit Biber] Auf formatiert.[/Edit]
@echo off & setlocal
:BEGINN
for /r %PFAD% %%f in (*.*) do (
set "DATEI=%%f"
set "PFAD=%USERPROFILE%\Desktop\TEST"
set "LINK=%USERPROFILE%\Desktop\TEST\%PFAD%.lnk"
)
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%LINK%")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%PFAD%\%DATEI%">>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory="%PFAD%">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs
cscript //nologo %temp%\MakeShortCut.vbs
del %temp%\MakeShortCut.vbs
goto :BEGINN
Von vbs hab ich noch so gut wie überhaupt keine Ahnung, aber auch wenn den Teil mit in die Klammer packe wird nur eine Datei benannt und die Variable "DATEI" wird auch nicht gefunden.
Alternativ habe ich noch eine möglichkeit mit der rundll32 entdeckt:
RunDLL32 AppWiz.Cpl,NewLinkHere %1
Aber hier weiss ich nicht wie es und ob es automatisch anblaufen kann. Habe versucht noch was anzuhängen aber auch nach langer suche keine Beispiele zum erweitern gefunden.
Gruß waldgnarf
[Edit Biber] Auf formatiert.[/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 79725
Url: https://administrator.de/contentid/79725
Ausgedruckt am: 20.11.2024 um 11:11 Uhr
10 Kommentare
Neuester Kommentar
Versuchs mal so:
miniversum
@echo off & setlocal
set "PFAD=%USERPROFILE%\Desktop\TEST"
for /r %PFAD% %%f in (*.*) do call:MakeShortCut "%%f"
)
del %temp%\MakeShortCut.vbs
goto:eof
:MakeShortCut
set "DATEI=%%~1"
set "LINK=%USERPROFILE%\Desktop\TEST\%%~n1.lnk"
echo Set objShell=WScript.CreateObject("Wscript.Shell")>%temp%\MakeShortCut.vbs
echo Set objShortcut=objShell.CreateShortcut("%LINK%")>>%temp%\MakeShortCut.vbs
echo objShortcut.TargetPath="%PFAD%\%DATEI%">>%temp%\MakeShortCut.vbs
echo objShortcut.WorkingDirectory="%PFAD%">>%temp%\MakeShortCut.vbs
echo objShortcut.Save>>%temp%\MakeShortCut.vbs
cscript //nologo %temp%\MakeShortCut.vbs
Bitte mach eine Trennung, von dem Teil den Du gemacht hast und dem Teil den Du gefunden hast (Ist etwas einfacher zum Analysieren).
Und schliess das CODE-Tag mit <> und nicht mit ein.
Und schliess das CODE-Tag mit <> und nicht mit ein.
...ohne das ich den Script dauernd wiederholen muss. Habe es mit for schleife versucht...
Was ist eine Schleife anderes als ein Wiederholung?
Ich bekomme gleich ein Kind...
Wie kommst Du auf einzeln wiederholen?
Der Batch muss eh ausgeführt werden, um das VBS zu erstellen.
Wieso nicht von Anfang an alles in einem VBS?
Du wirst es wahrscheinlich kaum glauben, aber mit VBScript kann man auch Variablen verwenden.
Statt ein ErstellMirEinenLink.BAT zu machen der ein MachIchChef.VBS erstellt, ausführt und am Schluss wieder löscht kannst Du ja ein IchMacheAllesChef.VBS machen (mit Variablen )
Wie kommst Du auf einzeln wiederholen?
Der Batch muss eh ausgeführt werden, um das VBS zu erstellen.
Wieso nicht von Anfang an alles in einem VBS?
Du wirst es wahrscheinlich kaum glauben, aber mit VBScript kann man auch Variablen verwenden.
Statt ein ErstellMirEinenLink.BAT zu machen der ein MachIchChef.VBS erstellt, ausführt und am Schluss wieder löscht kannst Du ja ein IchMacheAllesChef.VBS machen (mit Variablen )
Hallo waldgnarf!
Bei der folgenden (ungetesteten) Variante wird das VBScript nur einmal erstellt und verwendet dann die beim Aufruf übergebenen Parameter:
Zum Thema "vbs-Script nicht jedesmal für insgesamt 20 Datein einzeln wiederholen": Ich nehme an, dass damit das wiederholte Erstellen des Scripts gemeint war, denn ausführen musst Du es natürlich für jede einzelne Datei.
Grüße
bastla
Bei der folgenden (ungetesteten) Variante wird das VBScript nur einmal erstellt und verwendet dann die beim Aufruf übergebenen Parameter:
@echo off & setlocal
set "PFAD=%USERPROFILE%\Desktop\TEST"
set M=%temp%\MakeShortCut.vbs
echo Set objArgs=WScript.Arguments>%M%
echo Set objShell=WScript.CreateObject("WScript.Shell")>>%M%
echo Set objShortcut=objShell.CreateShortcut(objArgs(1))>>%M%
echo objShortcut.TargetPath=objArgs(2)^&"\"^&objArgs(0)>>%M%
echo objShortcut.WorkingDirectory=objArgs(2)>>%M%
echo objShortcut.Save>>%M%
for /r %PFAD% %%f in (*.*) do call:MakeShortCut "%%f"
del %M%
goto:eof
:MakeShortCut
set "DATEI=%%~1"
set "LINK=%USERPROFILE%\Desktop\TEST\%%~n1.lnk"
cscript //nologo %M% "%DATEI%" "%LINK%" "%PFAD%"
Grüße
bastla
Hallo waldgnarf!
Hinsichtlich des Fehler sollte es helfen, wenn Du in der Zeile
auch die Variable %PFAD% unter Anführungszeichen setzt, also:
Grüße
bastla
Hinsichtlich des Fehler sollte es helfen, wenn Du in der Zeile
for /r %PFAD% %%f in (*.*) do call:MakeShortCut "%%f"
for /r "%PFAD%" %%f in (*.*) do call:MakeShortCut "%%f"
Dann müsste ich ja die ganze Batch die schon zu 70% fertig ist in vbs (von was ich noch 0plan habe) umschreiben.
Keineswegs - der VBS-Teil ist ja in den Batch integriert.Grüße
bastla