- Para criar um script Winget para instalar e atualizar aplicativos no Windows 11, use um arquivo em lote com uma lista de IDs de aplicativos.
- O script verifica se cada aplicativo está instalado. Caso contrário, ele o instala; se já estiver instalado, verifica se há atualizações e as instala.
- Você pode executar o script manualmente, a partir da pasta Inicializar, ou como uma tarefa agendada.
No Windows 11 , você pode criar um script simples para baixar, instalar e atualizar automaticamente seus aplicativos favoritos sempre que o sistema for iniciado, e neste guia, mostrarei exatamente como fazer isso.
Como trabalho bastante com máquinas virtuais para testar aplicativos, configurações e ambientes, reinstalo constantemente o sistema operacional para garantir um ambiente limpo. Uma das partes mais demoradas do processo é reinstalar manualmente todos os aplicativos essenciais que uso diariamente.
Para resolver isso, recorri ao Gerenciador de Pacotes do Windows (Winget) , a ferramenta de linha de comando da Microsoft para gerenciar aplicativos. É rápido e confiável, mas eu queria algo ainda mais automatizado. Então, criei um script personalizado que é executado automaticamente na inicialização. Ele realiza duas tarefas:
- Se o aplicativo não estiver instalado, o script o instala.
- Se o aplicativo já estiver instalado, ele verifica se há atualizações e as instala quando disponíveis.
Neste guia , descreverei os passos para criar e usar esse script. Seja você um desenvolvedor, administrador de rede ou um usuário avançado buscando economizar tempo, este método ajudará a simplificar a implantação de aplicativos e a configuração do sistema no Windows 11.
Crie um script Winget para instalar e atualizar aplicativos no Windows 11.
Este é um processo de três etapas. Primeiro, você precisa criar uma lista de todos os aplicativos que deseja ter no seu computador; depois, precisa gerar o script; e, por fim, precisa decidir como executar o script.
Gere uma lista de aplicativos
Para criar uma lista de aplicativos para instalar e atualizar usando o winget, siga estas etapas:
-
Abra o menu Iniciar .
-
Procure por "Prompt de Comando" (ou "Terminal"), clique com o botão direito do mouse no primeiro resultado e escolha a opção " Executar como administrador" .
-
Digite o seguinte comando para encontrar o número de identificação do aplicativo e pressione Enter :
winget pesquisa APP-NAME

Após concluir os passos, o comando exibirá os aplicativos que correspondem à consulta. Geralmente, é recomendável usar uma única palavra que ajude a encontrar o aplicativo. Se o nome contiver um espaço, use aspas. Caso contrário, a pesquisa não funcionará.
Além disso, se você estiver usando uma citação, estará instruindo o aplicativo a procurar a correspondência exata, portanto, certifique-se de que a consulta esteja correta. (Este não é um mecanismo de busca.)
Por exemplo, se eu quiser encontrar as informações do winget para o aplicativo “VLC”, uso o comando winget search vlc.
Repita os passos e anote o valor do ID para cada aplicação, pois você precisará dessa informação para criar o script personalizado.
Crie o script winget
Para criar um arquivo em lote para instalar e atualizar aplicativos, siga estas etapas:
-
Abra o menu Iniciar .
-
Procure por "Bloco de Notas" e clique no primeiro resultado para abrir o aplicativo.
-
Copie e cole o seguinte código no arquivo de texto:
@echo off setlocal enabledelayedexpansion :: Lista de IDs de aplicativos set apps= Microsoft.WindowsTerminal.Preview Microsoft.Edge.Dev Microsoft.PowerToys for %%A in (%apps%) do ( echo --------------------------------------- echo Processando %%A... :: Verifique se o aplicativo está instalado capturando a saída da lista winget list --id %%A > temp_check.txt 2>&1 findstr /C:"Nenhum pacote instalado encontrado" temp_check.txt >nul if !errorlevel! equ 0 ( echo %%A não instalado. Instalando... winget install --id %%A --silent --accept-source-agreements --accept-package-agreements ) else ( echo %%A está instalado. Tentando atualizar... winget upgrade --id %%A --silent --accept-source-agreements --accept-package-agreements if !errorlevel! neq 0 ( echo Falha na atualização para %%A ou Nenhuma atualização disponível. ) ) echo. ) del temp_check.txt >nul 2>&1 endlocal
-
Na seção “set apps=” , anote os aplicativos que você deseja instalar e atualizar em seu computador e use um espaço para separar cada aplicativo.
Observação rápida: estou incluindo três exemplos nesta linha, mas lembre-se de atualizar esta seção para incluir suas aplicações.
-
Clique em Arquivo e escolha a opção Salvar como .
-
Selecione o local onde deseja armazenar o arquivo.
Dica rápida: Se você usa o OneDrive, pode carregar o arquivo na nuvem para ter acesso ao script de todos os seus computadores.
-
Confirme o nome do script e utilize a extensão de arquivo .bat .

-
Clique no botão Salvar .
Após concluir as etapas, você pode executar o script manualmente clicando com o botão direito do mouse no arquivo “.bat” e usando a opção “Executar como administrador” , ou pode criar um gatilho para executar o arquivo em lote automaticamente.
Segue abaixo uma descrição detalhada do script em lote e de como cada parte funciona:
Configuração inicial
@echo offSuprime a repetição de comandos.
setlocal enabledelayedexpansionpermite a “expansão de variáveis atrasada”, para que as variáveis dentro dos parênteses possam ser acessadas em tempo real usando !VAR!em vez de %VAR%.
Define a lista de aplicativos
set apps =Define a lista de IDs de aplicativos winget a serem processados no loop.
Analise cada aplicativo.
for %%A in (%apps%) do ()Para cada ID ( %%A) na lista de aplicativos, os comandos incluídos são executados sequencialmente.
Verifique a instalação do aplicativo.
winget listO comando escreve a saída temp_check.txtporque a ferramenta de linha de comando não tem como verificar se um aplicativo já está instalado.
findstrO programa procura nesse arquivo a frase “Nenhum pacote instalado encontrado”. Se encontrada, o valor ERRORLEVELé 0 ; caso contrário, é 1 .
!errorlevel!Ajuda a obter o código de erro correto dentro do loop.
Instale ou atualize o aplicativo.
- Se o aplicativo não estiver instalado (
errorlevel = 0), execute winget install.
- Se estiver instalado, execute
winget upgradee, em caso de falha errorlevel ≠ 0, relate que a atualização falhou ou que nenhuma atualização estava disponível.
Script de limpeza e encerramento
delRemove o arquivo temporário.
endlocalRestaura o ambiente pré-script, encerrando a expansão atrasada.
Configure o roteiro
Você tem três opções para executar o script em lote. Pode executá-lo manualmente, adicioná-lo à pasta "Inicialização" para que o sistema o execute automaticamente sempre que você fizer login na sua conta, ou pode criar uma tarefa agendada com o Agendador de Tarefas.
Manualmente
Se você deseja executar o script manualmente, siga estas etapas:
-
Clique com o botão direito do mouse no arquivo “.bat” e selecione a opção Executar como administrador .

Você também pode executá-lo diretamente pelo Prompt de Comando ou PowerShell.
Essa opção é ideal para testes ou uso ocasional, mas requer inicialização manual a cada vez.
Adicione à pasta Inicializar
Para executar o script automaticamente a partir da pasta “Inicialização”, siga estes passos:
-
Abra o menu Iniciar .
-
Procure por "Run" e clique no primeiro resultado para abrir o aplicativo.
-
Digite o seguinte comando para abrir a pasta e pressione Enter :
shell:inicialização

-
Copie e cole um atalho para o arquivo .bat na pasta.

Após concluir os passos, o script será executado sempre que você fizer login.
Essa opção é fácil de configurar, mas só funciona quando um usuário faz login, não na inicialização do sistema. Além disso, você precisará confirmar a instalação de cada aplicativo que requer privilégios elevados.
Criar uma tarefa agendada
Para criar uma tarefa agendada para executar o script winget, siga estes passos:
-
Abra o menu Iniciar .
-
Procure por " Agendador de Tarefas" e clique no primeiro resultado para abrir o aplicativo.
-
(Opcional) Clique com o botão direito do mouse na pasta “Biblioteca do Agendador de Tarefas” e selecione a opção Nova Pasta .
-
Confirme o nome da pasta – por exemplo, Minhas Tarefas .
-
Clique com o botão direito do mouse na pasta “Minhas Tarefas” e clique na opção Criar Tarefa .

-
Clique na aba Geral .
-
No campo “Nome”, digite um nome descritivo para a tarefa, como “ Meus Aplicativos ”.

-
Selecione a opção “Executar independentemente de o usuário estar conectado ou não” na seção “Opções de segurança”.
-
Marque a opção “Executar com privilégios elevados” .
-
Clique na aba Gatilhos .
-
Clique no botão Novo .
-
Selecione um gatilho (como "Ao fazer logon", "Na inicialização" ou em uma programação, como diariamente) na configuração "Iniciar a tarefa".

-
Configure as definições de agendamento conforme necessário.
Observação rápida: Para simplificar, você pode escolher a opção "Na inicialização" .
-
Clique no botão OK .
-
Clique na aba Ações .
-
Clique no botão Novo .
-
Selecione a opção Iniciar um programa nas configurações "Ações".
-
Na configuração “Programa/script”, digite o seguinte comando:
cmd.exe

-
Na configuração “Adicionar argumentos (opcional)”, digite o seguinte comando:
/c "C:\caminho\para\SEU-SCRIPT.bat"
-
Clique no botão OK .
-
Clique na aba Condições .
-
Em “Energia”, desmarque as opções “Parar se o computador mudar para a alimentação por bateria” e “Iniciar a tarefa somente se o computador estiver conectado à energia CA” .
-
Clique no botão OK .
-
Confirme a senha da sua conta.
-
Clique no botão OK .
Após concluir os passos, um ponto de restauração do sistema será criado na data e horário especificados.