Converter bat para vbs

Converter BAT para VBS

Reescreva comandos de Windows batch como VBScript para WSH, COM, WMI, registry e automação de arquivos.

Como converter bat para vbs arquivo

Um sistema de deployment ou um host Windows pode exigir um arquivo VBScript em vez de um command script, especialmente para automação de COM, WMI, registry ou Windows Script Host gráfica. Como BAT e VBS usam linguagens e modelos de execução diferentes, a conversão exige reescrever os comandos, e não apenas alterar a extensão do filename.

O que é o formato BAT

Um arquivo BAT é um script de texto simples interpretado pelo cmd.exe. Ele automatiza programas de linha de comando, operações de arquivo, variáveis de ambiente, alterações de diretório, loops, condições, labels, redirection, e verificações de error-level no Windows.

Administrators e developers criam arquivos BAT com Notepad, Notepad++, Visual Studio Code ou editores de linha de comando. A extensão relacionada .cmd também é usada para scripts do Command Prompt. Arquivos BAT e CMD podem ser executados pelo File Explorer, Command Prompt, Task Scheduler, login scripts, sistemas de deployment e installers.

O que é o formato VBS

Um arquivo VBS é um programa VBScript de texto simples executado pelo Windows Script Host por meio de wscript.exe ou cscript.exe. O VBScript fornece variáveis, procedures, conditional statements, structured loops, automação COM, acesso ao registry, Windows Management Instrumentation, objetos de file system e message boxes.

VBS é útil quando um script precisa controlar um aplicativo habilitado para COM, consultar WMI, acessar o registry ou ser executado por meio de um script host em vez de diretamente no cmd.exe. Ele não é inerentemente mais rápido ou menor que BAT. A Microsoft deprecated o VBScript, e o Windows Script Host pode ser restricted por policy ou disabled por security software; portanto, verifique os sistemas de destino antes da migração.

Como converter um arquivo BAT para VBS

Não existe um format converter confiável de um clique. A sintaxe BAT não pode ser interpretada como VBScript, e uma ferramenta automatizada não consegue determinar com segurança se um shell command deve ser substituído por um objeto VBScript, mantido por meio do cmd.exe ou redesigned.

  1. Abra o arquivo BAT no Notepad++, Visual Studio Code ou outro plain-text editor. Não use um word processor.
  2. Faça um inventário dos comandos, argumentos, paths entre aspas, variáveis de ambiente, redirection, error handling, labels, loops e programas externos.
  3. Crie um novo arquivo, como backup.vbs; preserve o arquivo BAT original para comparação e rollback.
  4. Substitua as operações por objetos nativos do VBScript quando for prático e use WScript.Shell.Run ou Exec para comandos que não tenham um equivalente adequado.
  5. Teste com cscript.exe //nologo backup.vbs para que a saída e os erros apareçam no console. Use wscript.exe backup.vbs quando nenhuma janela de console for desejada.

Por exemplo, este código BAT:

mkdir C:\Logs
copy C:\Data\report.csv C:\Logs\report.csv

pode se tornar:

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FolderExists("C:\Logs") Then
    fso.CreateFolder "C:\Logs"
End If

fso.CopyFile "C:\Data\report.csv", "C:\Logs\report.csv", True

O parent directory do destination já deve existir; crie separadamente os níveis de diretório ausentes quando necessário. Para um comando sem um equivalente conveniente em VBScript, mantenha o comando explicitamente:

Set shell = CreateObject("WScript.Shell")
exitCode = shell.Run("cmd.exe /c ipconfig /flushdns", 0, True)
If exitCode <> 0 Then WScript.Quit exitCode

Traduza os constructs comuns deliberadamente:

  • echo message normalmente se torna WScript.Echo "message".
  • pause exige um replacement, como InputBox, MsgBox ou um delay deliberado.
  • if exist file torna-se fso.FileExists("file"); as verificações de diretório usam fso.FolderExists.
  • Loops for do Batch tornam-se loops For ou For Each do VBScript.
  • %NAME% não é uma variável do VBScript. Atribua um valor ou recupere o process environment com shell.ExpandEnvironmentStrings("%NAME%").
  • Parâmetros posicionais do Batch, como %1, exigem WScript.Arguments(0); labels do Batch e goto exigem um redesign do control flow.

Salve o resultado como plain text com a extensão .vbs. No Notepad, escolha File → Save As, defina Save as type como All files e informe o filename entre aspas, se necessário. Texto ANSI ou UTF-16 little-endian é amplamente compatível; o suporte à codificação UTF-8 depende da versão do Windows Script Host, portanto teste a codificação escolhida no sistema de destino.

Compatibilidade e testes

Renomear script.bat para script.vbs não o converte. O VBScript rejeitará comandos de Batch, como echo, set, if exist, percent expansion, labels e shell redirection, a menos que sejam reescritos ou enviados para o cmd.exe.

Batch quoting, delayed expansion, ERRORLEVEL, pipes, redirection, comportamento de wildcards, regras de current directory e administrative privileges podem alterar o resultado. Verifique cada exit code, use fully qualified paths sempre que possível, coloque entre aspas os paths que contenham espaços e teste usando cópias dos arquivos de produção. Um script VBS que invoca cmd.exe /c ainda depende do Command Prompt e mantém o security behavior e o quoting behavior do comando original.

Nenhum online converter de uso geral respeitável pode executar essa language translation de forma confiável. Fazer upload de um script também pode revelar passwords, network paths, tokens ou administrative commands. Use ferramentas locais, como Visual Studio Code, Notepad++ ou Microsoft Windows Script Host; para migrações maiores, reescreva e teste cada operação individualmente em vez de confiar em um automatic conversion service.

Comparação de formato: BAT vs VBS

Como os formatos BAT e VBS se comparam nas propriedades mais importantes para esta conversão.

Comparação dos formatos de arquivo BAT e VBS
Propriedade .BAT Windows Batch File .VBS VBScript
Legível em texto simples Sim Sim
Formatação de texto Básico Básico
Imagens Não Não
Edição posterior Fácil Fácil
Abre num navegador web Não Não
Tamanho típico do arquivo Muito pequeno Muito pequeno
Padrão aberto Não Não
Mais usado para Incorporação em aplicações Incorporação em aplicações
Introduzido 1981 1996
Desenvolvedor Microsoft Microsoft

Outras conversões de arquivo .bat

Conversão inversa

Converter para .vbs
de outros formatos

Compartilhar nas redes sociais: