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
- Programování
- Dosud nehodnoceno.
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.
- Otevřete soubor BAT v programu Notepad++, Visual Studio Code nebo jiném editoru prostého textu. Nepoužívejte textový procesor.
- 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.
- Vytvořte nový soubor, například
backup.vbs; původní soubor BAT si ponechte pro porovnání a návrat k původní verzi. - Pokud je to praktické, nahraďte operace nativními objekty VBScript a pro příkazy, které nemají vhodný ekvivalent, použijte
WScript.Shell.RunneboExec. - Testujte pomocí
cscript.exe //nologo backup.vbs, aby se výstup a chyby zobrazovaly v konzoli. Pokud nechcete okno konzole, použijtewscript.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 messagese obvykle převádí naWScript.Echo "message".pausevyžaduje náhradu, napříkladInputBox,MsgBoxnebo záměrné zpoždění.if exist filese převádí nafso.FileExists("file"); kontroly adresářů používajífso.FolderExists.- Smyčky Batch
forse převádějí na smyčky VBScriptForneboFor 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 agotovyž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.
| 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 |