Starten Sie eine Verknüpfung mithilfe einer Batchdatei


12

Hier ist das Problem.

Ich habe eine Verknüpfung zu ungefähr 260 Computern, die sich im selben Ordner wie unten befinden.

"c: \ Dokumente und Einstellungen \ alle Benutzer \ Desktop \ Remote Agent 1234 .lnk"

Das einzige, was sich an der Verknüpfung ändert, ist die Nummer. Gibt es eine Möglichkeit, einen Platzhalter in einer Batchdatei zum Starten der Verknüpfung zu verwenden, anstatt den vollständigen Dateinamen angeben zu müssen?

Antworten:


6

Sie können für diese Aufgabe entweder for oder forfiles verwenden . Forfiles ist flexibler, funktioniert jedoch unter älteren Windows-Versionen möglicherweise nicht ordnungsgemäß.

Zum

An einer Eingabeaufforderung:

for %a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%a"

In einer Batch-Datei:

for %%a in ("C:\Documents and Settings\All Users\Desktop\Remote agent *.lnk") do @start "" "%%a"

Forfiles

forfiles /P "C:\Documents and Settings\All Users\Desktop" /M "Remote agent *.lnk" /C "cmd /C start \"\" @path"

Forfiles durchläuft alle Dateien in dem angegebenen Pfad /P, die mit der angegebenen Maske übereinstimmen, /Mund führt den in angegebenen Befehl aus /C. Hier @pathist der vollständige Pfad der Datei.

Normalerweise verwenden wir den Befehl start "" "Remote Agent 1234.lnk", um die Verknüpfung zu starten. Da start ein interner Befehl ist, müssen wir ihn in einer neuen shell ( cmd /C) aufrufen . \"\"Es werden nur doppelte Anführungszeichen angezeigt, da die gesamte Zeichenfolge bereits in Anführungszeichen gesetzt ist.


forfiles / P "C: \ Dokumente und Einstellungen \ Alle Benutzer \ Desktop" / M "Remote-Agent * .lnk" / C "cmd / C start \" \ "@path" listet die Dateien im Ordner auf, öffnet jedoch nicht die Abkürzung.
Ghost3h

Das ist seltsam. Das Echo von Dateinamen ist die Standardaktion, aber der /CSchalter überschreibt dies. Welche Windows-Version?
Dennis

XP Professional, es listet auch alle Dateierweiterungen auf, von denen ich annehme, dass sie nicht normal sind?
Ghost3h

Sieht nicht nach dem unterstützten Dennis aus, sondern gibt nur die Dateien in dem Verzeichnis wieder, aus dem es ausgeführt wird. Vielen Dank für die bisherige Hilfe!
Ghost3h

Ich habe gerade eine Quelle gefunden, die besagt, dass einige ältere Versionen von Forfiles -anstelle von /(für Windows sehr untypisch) für Switches verwendet werden . Vielleicht funktioniert das:forfiles -P"C:\Documents and Settings\All Users\Desktop" -M"Remote agent *.lnk" -C"cmd /C start \"\" @path"
Dennis
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.