Konverze bat do vbs

Převod souboru BAT do VBS

Přepište příkazy Windows batch do VBScriptu pro WSH, COM, WMI, registry a automatizaci souborů.

Jak převést soubor bat do formátu vbs

Deployment system nebo Windows host může vyžadovat soubor VBScript namísto command scriptu, zejména pro automatizaci COM, WMI, registru nebo grafického Windows Script Host. Protože BAT a VBS používají různé jazyky a modely spouštění, převod vyžaduje přepsání příkazů, nikoli změnu přípony názvu souboru.

Co je formát BAT

Soubor BAT je skript ve formátu prostého textu interpretovaný programem cmd.exe. Automatizuje programy příkazového řádku, operace se soubory, proměnné prostředí, změny adresářů, smyčky, podmínky, návěští, přesměrování a kontroly error-level v systému Windows.

Administrátoři a vývojáři vytvářejí soubory BAT pomocí programů Notepad, Notepad++, Visual Studio Code nebo editorů příkazového řádku. Související přípona .cmd se také používá pro skripty Command Prompt. Soubory BAT a CMD lze spouštět z File Explorer, Command Prompt, Task Scheduler, přihlašovacích skriptů, deployment systémů a instalačních programů.

Co je formát VBS

Soubor VBS je program VBScript ve formátu prostého textu spouštěný pomocí Windows Script Host prostřednictvím wscript.exe nebo cscript.exe. VBScript poskytuje proměnné, procedury, podmíněné příkazy, strukturované smyčky, automatizaci COM, přístup k registru, Windows Management Instrumentation, objekty systému souborů a dialogová okna se zprávami.

VBS je užitečný, když skript musí ovládat aplikaci s podporou COM, dotazovat se na WMI, přistupovat k registru nebo se spouštět prostřednictvím script hostu namísto přímého spuštění pod cmd.exe. Ze své podstaty není rychlejší ani menší než BAT. Společnost Microsoft označila VBScript za zastaralý a Windows Script Host může být omezen zásadami nebo deaktivován bezpečnostním softwarem, proto před migrací zkontrolujte cílové systémy.

Jak převést soubor BAT na VBS

Neexistuje spolehlivý převodník formátu na jedno kliknutí. Syntaxi BAT nelze interpretovat jako VBScript a automatizovaný nástroj nedokáže spolehlivě určit, zda má být shellový příkaz nahrazen objektem VBScript, zachován prostřednictvím cmd.exe nebo přepracován.

  1. Otevřete soubor BAT v programu Notepad++, Visual Studio Code nebo jiném editoru prostého textu. Nepoužívejte textový procesor.
  2. Sepište příkazy, argumenty, cesty v uvozovkách, proměnné prostředí, přesměrování, zpracování chyb, návěští, smyčky a externí programy.
  3. Vytvořte nový soubor, například backup.vbs; původní soubor BAT si ponechte pro porovnání a návrat k původní verzi.
  4. Pokud je to praktické, nahraďte operace nativními objekty VBScript a pro příkazy, které nemají vhodný ekvivalent, použijte WScript.Shell.Run nebo Exec.
  5. Testujte pomocí cscript.exe //nologo backup.vbs, aby se výstup a chyby zobrazovaly v konzoli. Pokud nechcete okno konzole, použijte wscript.exe backup.vbs.

Tento kód BAT:

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

lze převést na:

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

Nadřazený adresář cíle již musí existovat; v případě potřeby vytvořte chybějící úrovně adresářů samostatně. U příkazu bez vhodného ekvivalentu ve VBScriptu příkaz explicitně zachovejte:

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

Běžné konstrukce převádějte záměrně:

  • echo message se obvykle převádí na WScript.Echo "message".
  • pause vyžaduje náhradu, například InputBox, MsgBox nebo záměrné zpoždění.
  • if exist file se převádí na fso.FileExists("file"); kontroly adresářů používají fso.FolderExists.
  • Smyčky Batch for se převádějí na smyčky VBScript For nebo For Each.
  • %NAME% není proměnná VBScriptu. Přiřaďte hodnotu nebo načtěte prostředí procesu pomocí shell.ExpandEnvironmentStrings("%NAME%").
  • Poziční parametry Batch, například %1, vyžadují WScript.Arguments(0); návěští Batch a goto vyžadují přepracování řízení toku.

Výsledek uložte jako prostý text s příponou .vbs. V programu Notepad vyberte File → Save As, nastavte Save as type na All files a v případě potřeby zadejte název souboru v uvozovkách. Text v kódování ANSI nebo UTF-16 little-endian je široce kompatibilní; podpora kódování UTF-8 závisí na verzi Windows Script Host, proto zvolené kódování otestujte v cílovém systému.

Kompatibilita a testování

Přejmenování script.bat na script.vbs soubor nepřevede. VBScript odmítne batchové příkazy jako echo, set, if exist, expanzi procent, návěští a přesměrování shellu, pokud nejsou přepsány nebo předány programu cmd.exe.

Uvozování v Batch, odložená expanze, ERRORLEVEL, roury, přesměrování, chování zástupných znaků, pravidla aktuálního adresáře a oprávnění správce mohou změnit výsledek. Kontrolujte každý návratový kód, pokud možno používejte úplné cesty, cesty obsahující mezery uzavírejte do uvozovek a testujte s kopiemi produkčních souborů. Skript VBS, který vyvolává cmd.exe /c, je stále závislý na Command Prompt a zachovává bezpečnostní a uvozovací chování původního příkazu.

Žádný renomovaný obecný online převodník nedokáže tento jazykový převod spolehlivě provést. Nahrání skriptu může také odhalit hesla, síťové cesty, tokeny nebo administrativní příkazy. Používejte místní nástroje, jako jsou Visual Studio Code, Notepad++ nebo Microsoft Windows Script Host; u větších migrací přepisujte a testujte jednotlivé operace samostatně namísto spoléhání se na automatickou konverzní službu.

BAT vs VBS: srovnání formátů

Jak si formáty BAT a VBS stojí v nejdůležitějších vlastnostech pro tento převod.

Srovnání souborových formátů BAT a VBS
Vlastnost .BAT Windows Batch File .VBS VBScript
Čitelný jako prostý text Ano Ano
Formátování textu Základní Základní
Obrázky Ne Ne
Další úpravy Snadné Snadné
Otevírá se ve webovém prohlížeči Ne Ne
Typická velikost souboru Velmi malé Velmi malé
Otevřený standard Ne Ne
Nejvhodnější pro Vkládání do aplikací Vkládání do aplikací
Zavedeno 1981 1996
Vývojář Microsoft Microsoft

Podobné .bat konverze

Reverzní konverze

Konverze do .vbs
z jiných formátů

Sdílejte na sociálních sítích: