Avvia un collegamento usando il file batch


12

Ecco il problema

Ho un collegamento su circa 260 computer situati nella stessa cartella di seguito;

"c: \ documenti e impostazioni \ all users \ desktop \ Remote agent 1234 .lnk"

L'unica cosa che cambia sul collegamento è il numero. Esiste un modo per utilizzare un carattere jolly in un file batch per avviare il collegamento invece di dover specificare il nome file completo?

Risposte:


6

È possibile utilizzare for o forfile per questa attività. Forfiles è più flessibile, ma potrebbe non funzionare correttamente su versioni precedenti di Windows.

Per

Da un prompt dei comandi:

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

In un file batch:

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"

I file Forfile attraversano tutti i file nel percorso specificato in /Pcorrispondenza della maschera specificata /Med eseguono il comando specificato in /C. Ecco @pathil percorso completo del file.

Normalmente, useremmo il comando start "" "Remote Agent 1234.lnk"per avviare il collegamento. Poiché start è un comando interno, dobbiamo chiamarlo in una nuova shell ( cmd /C). \"\"sono solo le doppie virgolette di escape, poiché l'intera stringa è già citata.


forfiles / P "C: \ Documents and Settings \ All Users \ Desktop" / M "Remote agent * .lnk" / C "cmd / C start \" \ "@path" elenca i file nella cartella ma non apre il file scorciatoia.
— ghost3h,

È strano. L'eco dei nomi dei file è l'azione predefinita, ma l'opzione ha la precedenza su /Cquella. Quale versione di Windows?
— Dennis,

Xp Professional, elencando anche tutte le estensioni dei file che presumo non siano normali?
— ghost3h,

Non sembra il suo Dennis supportato, ancora una volta fa eco ai file all'interno della directory da cui è stato eseguito. Grazie per l'aiuto finora!
— ghost3h,

Ho appena trovato una fonte che dice che alcune versioni precedenti di forfile usano -per switch invece di /(molto atipico per Windows). Forse questo funziona:forfiles -P"C:\Documents and Settings\All Users\Desktop" -M"Remote agent *.lnk" -C"cmd /C start \"\" @path"
— Dennis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.