Запустите ярлык, используя командный файл

11

Здесь проблема.

У меня есть ярлык примерно на 260 компьютерах, расположенных в той же папке, что и ниже;

"c: \ Documents and Settings \ все пользователи \ рабочий стол \ Удаленный агент 1234 .lnk»

Единственное, что меняется на ярлыке - это номер. Есть ли способ использовать подстановочный знак в командном файле для запуска ярлыка вместо указания полного имени файла?

ghost3h
источник

Ответы:

5

Вы можете использовать либо за или же Forfiles для этой задачи. Forfiles более гибок, но может не работать должным образом на старых версиях Windows.

За

Из командной строки:

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

В пакетном файле:

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 проходит через все файлы по пути, указанному в /P которые соответствуют маске, указанной на /M и выполняет команду, указанную в /C, Вот @path полный путь к файлу

Обычно мы будем использовать команду start "" "Remote Agent 1234.lnk" запустить ярлык. Поскольку start является внутренней командой, мы должны вызывать ее в новой оболочке ( cmd /C ). \"\" только что избежали двойных кавычек, так как вся строка уже заключена в кавычки.

Dennis
источник
forfiles / P "C: \ Documents and Settings \ Все пользователи \ Рабочий стол" / M "Удаленный агент * .lnk" / C "cmd / C start \" \ "@path" перечисляет файлы в папке, но не открывает ярлык.
ghost3h
Это странно. Вывод имени файла является действием по умолчанию, но /C переключатель отменяет это. Какая версия Windows?
Dennis
Xp Professional, в нем перечислены все расширения файлов, которые, как я полагаю, не являются нормальными?
ghost3h
Не похоже на поддерживаемый им Деннис, опять же, он просто выводит файлы в каталоге, из которого запускается. Пока что спасибо за помощь!
ghost3h
Я только что нашел источник, который говорит, что некоторые старые версии forfiles используют - для переключателей вместо / (очень нетипично для Windows). Может быть, это работает: forfiles -P"C:\Documents and Settings\All Users\Desktop" -M"Remote agent *.lnk" -C"cmd /C start \"\" @path"
Dennis