Batch zum suchen und verschieben von Verknüpfungen
Hallo Zusammen,
ich muss verschiedene Rechner nach ganz bestimmten Datei-Verknüpfungen durchsuchen und diese dann verschieben! Das Ganze soll etwa so aussuchen:
1. Ermittel den Pfad des "Desktops Ordner" des angemeldeten Benutzer, auch wenn dieser nicht C:\User\Username\Desktop ist
2. Durchsuche den gefunden Desktoppfad nach "test.lnk"
3. Verschiebe die "test.lnk" nach Pfad ...
Da kommen noch ein oder zwei Zwischenschritte dazu, aber das bekomme ich hin. Nur das mit Desktoppfad ermitteln, bestimte Datei suchen und verschieben macht mir sorgen!
Hat da jemand was auf seiner Platte liegen?
Danke
ich muss verschiedene Rechner nach ganz bestimmten Datei-Verknüpfungen durchsuchen und diese dann verschieben! Das Ganze soll etwa so aussuchen:
1. Ermittel den Pfad des "Desktops Ordner" des angemeldeten Benutzer, auch wenn dieser nicht C:\User\Username\Desktop ist
2. Durchsuche den gefunden Desktoppfad nach "test.lnk"
3. Verschiebe die "test.lnk" nach Pfad ...
Da kommen noch ein oder zwei Zwischenschritte dazu, aber das bekomme ich hin. Nur das mit Desktoppfad ermitteln, bestimte Datei suchen und verschieben macht mir sorgen!
Hat da jemand was auf seiner Platte liegen?
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 346455
Url: https://administrator.de/forum/batch-zum-suchen-und-verschieben-von-verknuepfungen-346455.html
Ausgedruckt am: 22.04.2025 um 09:04 Uhr
14 Kommentare
Neuester Kommentar
Hi
Worauf willst Du hinaus? Ordnerumleitung?
Probiere es mit %USERPROFILE%\Desktop
Oder mit %HOMEDRIVE%%HOMEPATH%\Desktop
Nachtrag:
Falls Du mit Ordnerumleitungen arbeitest, kannst Du mit reg query den Desktop auslesen:
https://support.microsoft.com/de-de/help/242557/registry-settings-for-fo ...
1. Ermittel den Pfad des "Desktops Ordner" des angemeldeten Benutzer, auch wenn dieser nicht C:\User\Username\Desktop ist
Worauf willst Du hinaus? Ordnerumleitung?
Da kommen noch ein oder zwei Zwischenschritte dazu, aber das bekomme ich hin. Nur das mit Desktoppfad ermitteln, bestimte Datei suchen und verschieben macht mir sorgen!
Probiere es mit %USERPROFILE%\Desktop
Oder mit %HOMEDRIVE%%HOMEPATH%\Desktop
Nachtrag:
Falls Du mit Ordnerumleitungen arbeitest, kannst Du mit reg query den Desktop auslesen:
https://support.microsoft.com/de-de/help/242557/registry-settings-for-fo ...
Hi
meines Erachtens nach geht das Nativ unter Batch tatsächlich nur über Registry gemurkse.
Finde ich ganz hässlich, deshalb würde ich hier ein kleines vbs script Ran ziehen, das mir das sauber ausliest.
Also eine Datei findDesktop.vbs machen mit dem Code
und in deiner Batchdatei holst du dir dessen Ausgabe mit
damit hast du dann in der Variable %DesktopFolder% den Pfad zum Desktop.
Und danach kaufst du dir ein Powershell Buch ;)
meines Erachtens nach geht das Nativ unter Batch tatsächlich nur über Registry gemurkse.
Finde ich ganz hässlich, deshalb würde ich hier ein kleines vbs script Ran ziehen, das mir das sauber ausliest.
Also eine Datei findDesktop.vbs machen mit dem Code
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
wscript.echo(strDesktop)
und in deiner Batchdatei holst du dir dessen Ausgabe mit
FOR /F "usebackq delims=" %%i in (`cscript findDesktop.vbs`) DO SET DesktopFolder=%%i
damit hast du dann in der Variable %DesktopFolder% den Pfad zum Desktop.
Und danach kaufst du dir ein Powershell Buch ;)
Ich habe wirklich den Eindruck, ich schreibe mich hier zu einem Idioten!
Du hast von mir oben einen Anhaltspunkt bekommen, mal in die Registry zu schauen.
In diesen Baum hier:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Auch bei Ordnerumleitungen sollte hier der entsprechende Pfad für DESKTOP zu finden sein.
Prüf das mal nach.
https://stackoverflow.com/questions/10359001/how-to-read-a-reg-value-int ...
Ein one liner sollte reichen:
for /f "tokens=3" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /V Desktop ^|findstr /ri "REG_SZ"') do echo %%a
Dies ist ein Beispiel, wie der Registrywert ausgelesen und ausgegeben wird.
Du musst nur den hinteren Bereich ab "do" entsprechend anpassen.
Wenn Du den Befehl in der cmd erstmal testen willst ersetze %%a durch %a
Ich bin hier nun raus.
Du hast von mir oben einen Anhaltspunkt bekommen, mal in die Registry zu schauen.
In diesen Baum hier:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Auch bei Ordnerumleitungen sollte hier der entsprechende Pfad für DESKTOP zu finden sein.
Prüf das mal nach.
https://stackoverflow.com/questions/10359001/how-to-read-a-reg-value-int ...
Ein one liner sollte reichen:
for /f "tokens=3" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /V Desktop ^|findstr /ri "REG_SZ"') do echo %%a
Dies ist ein Beispiel, wie der Registrywert ausgelesen und ausgegeben wird.
Du musst nur den hinteren Bereich ab "do" entsprechend anpassen.
Wenn Du den Befehl in der cmd erstmal testen willst ersetze %%a durch %a
Ich bin hier nun raus.