Iniciar um atalho usando o arquivo em lotes

12

Aqui está o problema.

Eu tenho um atalho em aproximadamente 260 computadores localizados na mesma pasta abaixo;

"c: \ documentos e configurações \ todos os usuários \ desktop \ Agente remoto 1234 .lnk"

A única coisa que muda no atalho é o número. Existe uma maneira de usar um curinga em um arquivo em lotes para iniciar o atalho em vez de precisar especificar o nome completo do arquivo?

ghost3h
fonte

Respostas:

6

Você pode usar para ou forfiles para esta tarefa. O Forfiles é mais flexível, mas pode não funcionar corretamente em versões mais antigas do Windows.

Para

Em um prompt de comando:

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

Em um arquivo em lotes:

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 passa por todos os arquivos no caminho especificado em /Pque correspondem a máscara especificada no /Me executa o comando especificado na /C. Aqui @pathestá o caminho completo do arquivo.

Normalmente, usamos o comando start "" "Remote Agent 1234.lnk"para iniciar o atalho. Como start é um comando interno, precisamos chamá-lo em um novo shell ( cmd /C). \"\"são apenas aspas duplas com escape, pois a string inteira já está entre aspas.

Dennis
fonte
forfiles / P "C: \ Documentos e configurações \ Todos os usuários \ Desktop" / M "Agente remoto * .lnk" / C "cmd / C start \" \ "@path" lista os arquivos na pasta, mas não abre o atalho.
ghost3h
Isso é estranho. Ecoar nomes de arquivos é a ação padrão, mas a /Copção substitui isso. Qual versão do Windows?
Dennis15 /
XP Professional, sua lista de todas as extensões de arquivo, bem como o que suponho que não é normal?
ghost3h
Não se parece com o seu Dennis suportado, mais uma vez apenas reproduz os arquivos no diretório em que é executado. Obrigado pela ajuda até agora!
ghost3h
Acabei de encontrar uma fonte dizendo que algumas versões mais antigas de arquivos forfiles usam -para switches em vez de /(muito atípico para Windows). Talvez isso funcione:forfiles -P"C:\Documents and Settings\All Users\Desktop" -M"Remote agent *.lnk" -C"cmd /C start \"\" @path"
Dennis