Batchdatei - Verknüpfung von ALLUSERS Desktop löschen

49630
Damien

Wenn ich in Vista / 7 versuche, eine Verknüpfung mithilfe des folgenden Befehls zu löschen: -:

del "%allusersprofile%\Desktop\MyShortcut.lnk" 

... Windows sieht diesen Ordner als leer und löscht die Datei nicht.

Die Umgebungsvariable "allusersprofile" verweist auf "C: \ ProgramData", "Desktop" ist jedoch eine symbolische Verknüpfung zum Ordner "C: \ Users \ Public \ Desktop".

Das Problem scheint zu sein, dass diese Softlinks nur Fenster-Explorer-Verknüpfungen sind und von Cmd-Eingabeaufforderungen oder Batchdateien nicht erkannt werden.

Die einzige Lösung, die ich sehen kann, ist folgendes zu tun:

XP:

del "%allusersprofile%\Desktop\MyShortcut.lnk" 

Vista / 7:

del "%PUBLIC%\Desktop\MyShortcut.lnk" 

Gibt es eine gemeinsame Lösung für beide Betriebssysteme?

4
Mir ist dies aufgrund der Dateistrukturänderungen zwischen XP und Vista / 7 nicht bekannt. Eine Möglichkeit, diese Funktionalität in einem Skript zu erreichen, besteht darin, die Betriebssystemversion mit "ver" zu erhalten, eine Reihe von "if" / "else" -Prüfungen durchzuführen und dann mit "goto" den entsprechenden Befehl auszuführen. Garrett vor 12 Jahren 2

4 Antworten auf die Frage

5
PenguinCoder

Wie Garrett in Kommentaren dieser Frage festgestellt hat, sehe ich als einzige Lösung folgende Lösung:

SET Version=XP  VER | FINDSTR /IL "6.1." > NUL IF %ERRORLEVEL% EQU 0 SET Version=7  IF %Version% EQU 7 ( del "%PUBLIC%\Desktop\MyShortcut.lnk" ) IF %Version% EQU XP ( del "%allusersprofile%\Desktop\MyShortcut.lnk" ) 

Man könnte feststellen, dass laut dieser StackOverflow- Frage und einem Blogpost von Raymond Chen ein dirvon %allusersprofile%\Desktop\<directory>beiden auf XP und 7 die richtigen Ergebnisse liefern sollte, meiner Erfahrung nach jedoch nicht.

2
Slicktrick

Sie haben keine Art von Skript angegeben (VBS vs. BAT), aber hier ist ein VB-Skript, das systemunabhängig ist. Nicht mein Skript, ich habe es von dieser Microsoft-Site gezogen . Gemäß dieser Seite wurde überprüft, ob sie unter Windows 2000, XP, Vista und 7 funktioniert.

''''''''''''''''''''''''''''''''''  '  ' This VB script removes the requested desktop shortcuts  '  ' Change only the file name (test.lnk)  '  ' Script created by Holger Habermehl. October 23, 2012  ''''''''''''''''''''''''''''''''''  Set Shell = CreateObject("WScript.Shell")  Set FSO = CreateObject("Scripting.FileSystemObject")  DesktopPath = Shell.SpecialFolders("Desktop") FSO.DeleteFile DesktopPath & "\test.lnk" 

BEARBEITEN

Der obige Code zeigt den Desktop des jeweiligen Benutzers (dh Benutzername "john" meldet sich an, der Code zeigt "C: \ Users \ john \ Desktop \" oder "C: \ Documents and Settings \ john \ Desktop"). Wenn Sie den öffentlichen Desktop überprüfen möchten, ändern Sie die Zeile mit der Anzeige

DesktopPath = Shell.SpecialFolders("Desktop") 

zu

DesktopPath = Shell.SpecialFolders("AllUsersDesktop") 

Beachten Sie jedoch, dass abhängig von den Berechtigungen des Benutzers und beim Ausführen des Skripts möglicherweise eine UAC-Box erscheint, in der Sie aufgefordert werden, sich unter Windows Vista / 7 als Administrator anzumelden. Ich würde das Skript in einem GPO als Computer-Startskript ausführen.

0
Gooofy

Guter Rat hier, der bei meinem Szenario geholfen hat.

  1. Ich habe eine Batchdatei erstellt, um die Verknüpfungen zu entfernen

fixme.bat enthält die folgenden 3 Zeilen:

del "C: \ Benutzer \ Öffentlich \ Desktop \ gVim 7.4.lnk" del "C: \ Benutzer \ Öffentlich \ Desktop \ Cygwin64 Terminal.lnk" Pause 
  1. Klicken Sie mit der rechten Maustaste auf die Batchdatei, um das Menü aufzurufen.

  2. Wählen Sie "Erhöhte Berechtigungen ausführen" und geben Sie Ihr Passwort ein.

Erfolg.

Sie können auch "Als Administrator ausführen" versuchen.

Viel Glück!

Hallo Gooofy, danke für die Antwort. Umfasst dies sowohl XP als auch Vista / 7, wie in der ursprünglichen Frage angegeben? bertieb vor 8 Jahren 1
-1
theGiantMidget 2000

Das funktioniert in win7.

Ich konnte es nicht in XP ausprobieren, aber ich denke, es sollte funktionieren.

 del "%HOMEDRIVE%%HOMEPATH%\Desktop\test.lnk" 

Speichern Sie es als Batchdatei und führen Sie es normal aus. Wenn Ihr Konto nicht über Administratorrechte verfügt, müssen Sie möglicherweise mit der rechten Maustaste klicken und "Als Administrator ausführen" auswählen. Sie können auch cmd öffnen und es einfach als Befehl eingeben.

Dieser Befehl löscht eine andere Datei ... `% HOMEDRIVE %% HOMEPATH%` stimmt nicht mit `% allusersprofile%` überein DavidPostill vor 7 Jahren 1
Es geht immer noch auf den Desktop. "% allusersprofile%" ist anders, aber ich dachte, "% HOMEDRIVE %% HOMEPATH%" könnte für das funktionieren, was er wollte. @DavidPostill theGiantMidget 2000 vor 7 Jahren 0
Einer ist der Desktop für alle Benutzer und der andere ist für einen bestimmten Benutzer. Der Inhalt wird kombiniert, um den Desktop für den angemeldeten Benutzer zu erstellen. DavidPostill vor 7 Jahren 1