Konwertuj BAT na VBS
Przepisz polecenia Windows batch na VBScript dla WSH, COM, WMI, registry oraz automatyzacji plików.
Jak konwertować bat do vbs
- Programowanie
- Brak ocen.
System wdrażania lub host Windows może wymagać pliku VBScript zamiast skryptu poleceń, szczególnie w przypadku automatyzacji COM, WMI, rejestru lub graficznego Windows Script Host. Ponieważ BAT i VBS używają różnych języków i modeli wykonywania, konwersja wymaga przepisania poleceń, a nie zmiany rozszerzenia nazwy pliku.
Czym jest format BAT
Plik BAT to skrypt w postaci zwykłego tekstu interpretowany przez cmd.exe. Automatyzuje programy wiersza poleceń, operacje na plikach, zmienne środowiskowe, zmiany katalogów, pętle, warunki, etykiety, przekierowania i sprawdzanie error-level w systemie Windows.
Administratorzy i deweloperzy tworzą pliki BAT za pomocą programów Notepad, Notepad++, Visual Studio Code lub edytorów wiersza poleceń. Powiązane rozszerzenie .cmd jest również używane w przypadku skryptów Command Prompt. Pliki BAT i CMD można uruchamiać z poziomu File Explorer, Command Prompt, Task Scheduler, skryptów logowania, systemów wdrażania i instalatorów.
Czym jest format VBS
Plik VBS to program VBScript w postaci zwykłego tekstu, wykonywany przez Windows Script Host za pośrednictwem wscript.exe lub cscript.exe. VBScript udostępnia zmienne, procedury, instrukcje warunkowe, ustrukturyzowane pętle, automatyzację COM, dostęp do rejestru, Windows Management Instrumentation, obiekty systemu plików i okna komunikatów.
VBS jest przydatny, gdy skrypt musi sterować aplikacją obsługującą COM, wykonywać zapytania WMI, uzyskiwać dostęp do rejestru lub działać za pośrednictwem hosta skryptów zamiast bezpośrednio w ramach cmd.exe. Nie jest z natury szybszy ani mniejszy od BAT. Firma Microsoft wycofała VBScript, a Windows Script Host może być ograniczony przez zasady lub wyłączony przez oprogramowanie zabezpieczające, dlatego przed migracją należy sprawdzić systemy docelowe.
Jak przekonwertować plik BAT na VBS
Nie istnieje niezawodny konwerter formatów działający jednym kliknięciem. Składnia BAT nie może być interpretowana jako VBScript, a narzędzie automatyczne nie jest w stanie niezawodnie określić, czy polecenie powłoki powinno zostać zastąpione obiektem VBScript, zachowane za pośrednictwem cmd.exe czy przeprojektowane.
- Otwórz plik BAT w programie Notepad++, Visual Studio Code lub innym edytorze zwykłego tekstu. Nie używaj edytora tekstu sformatowanego.
- Utwórz wykaz poleceń, argumentów, ścieżek w cudzysłowach, zmiennych środowiskowych, przekierowań, obsługi błędów, etykiet, pętli i programów zewnętrznych.
- Utwórz nowy plik, na przykład
backup.vbs; zachowaj oryginalny plik BAT do celów porównawczych i wycofania zmian. - W miarę możliwości zastąp operacje natywnymi obiektami VBScript, a następnie użyj
WScript.Shell.RunlubExecw przypadku poleceń, dla których nie ma odpowiednika. - Testuj za pomocą
cscript.exe //nologo backup.vbs, aby dane wyjściowe i błędy pojawiały się w konsoli. Użyjwscript.exe backup.vbs, jeśli okno konsoli nie jest potrzebne.
Na przykład ten kod BAT:
mkdir C:\Logs
copy C:\Data\report.csv C:\Logs\report.csv
może stać się:
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
Katalog nadrzędny miejsca docelowego musi już istnieć; w razie potrzeby brakujące poziomy katalogów należy utworzyć osobno. W przypadku polecenia bez wygodnego odpowiednika w VBScript należy jawnie zachować polecenie:
Set shell = CreateObject("WScript.Shell")
exitCode = shell.Run("cmd.exe /c ipconfig /flushdns", 0, True)
If exitCode <> 0 Then WScript.Quit exitCode
Typowe konstrukcje należy tłumaczyć świadomie:
echo messagezwykle staje sięWScript.Echo "message".pausewymaga zastąpienia, na przykład przezInputBox,MsgBoxlub celowe opóźnienie.if exist filestaje sięfso.FileExists("file"); do sprawdzania katalogów służyfso.FolderExists.- Pętle
forz plików wsadowych stają się pętlami VBScriptForlubFor Each. %NAME%nie jest zmienną VBScript. Przypisz wartość lub pobierz środowisko procesu za pomocąshell.ExpandEnvironmentStrings("%NAME%").- Parametry pozycyjne plików wsadowych, takie jak
%1, wymagają użyciaWScript.Arguments(0); etykiety plików wsadowych igotowymagają przeprojektowania przepływu sterowania.
Zapisz wynik jako zwykły tekst z rozszerzeniem .vbs. W programie Notepad wybierz File → Save As, ustaw Save as type na All files i w razie potrzeby wpisz nazwę pliku w cudzysłowie. Tekst w kodowaniu ANSI lub UTF-16 little-endian jest szeroko kompatybilny; obsługa kodowania UTF-8 zależy od wersji Windows Script Host, dlatego wybrane kodowanie należy przetestować w systemie docelowym.
Zgodność i testowanie
Zmiana nazwy script.bat na script.vbs nie powoduje konwersji. VBScript odrzuci polecenia plików wsadowych, takie jak echo, set, if exist, rozwijanie procentowe, etykiety i przekierowanie powłoki, chyba że zostaną przepisane lub przekazane do cmd.exe.
Cudzysłowy plików wsadowych, opóźnione rozwijanie, ERRORLEVEL, potoki, przekierowania, działanie symboli wieloznacznych, zasady dotyczące bieżącego katalogu i uprawnienia administracyjne mogą zmienić wynik. Sprawdzaj każdy kod wyjścia, w miarę możliwości używaj w pełni kwalifikowanych ścieżek, ujmuj w cudzysłowy ścieżki zawierające spacje i testuj na kopiach plików produkcyjnych. Skrypt VBS wywołujący cmd.exe /c nadal zależy od Command Prompt i zachowuje sposób działania oraz zasady dotyczące cudzysłowów oryginalnego polecenia.
Żaden renomowany konwerter online ogólnego przeznaczenia nie jest w stanie niezawodnie wykonać takiego tłumaczenia języka. Przesłanie skryptu może również ujawnić hasła, ścieżki sieciowe, tokeny lub polecenia administracyjne. Używaj lokalnych narzędzi, takich jak Visual Studio Code, Notepad++ lub Microsoft Windows Script Host; w przypadku większych migracji przepisuj i testuj każdą operację osobno zamiast ufać usłudze automatycznej konwersji.
Porównanie formatu BAT z VBS
Jak formaty BAT i VBS wypadają w porównaniu pod względem najważniejszych cech dla tej konwersji.
| Cecha | .BAT Windows Batch File | .VBS VBScript |
|---|---|---|
| Czytelny tekstowo | Tak | Tak |
| Formatowanie tekstu | Podstawowy | Podstawowy |
| Obrazy | Nie | Nie |
| Dalsza edycja | Łatwy | Łatwy |
| Otwiera się w przeglądarce internetowej | Nie | Nie |
| Typowy rozmiar pliku | Bardzo mały | Bardzo mały |
| Otwarty standard | Nie | Nie |
| Najlepszy do | Osadzanie w aplikacjach | Osadzanie w aplikacjach |
| Wprowadzono | 1981 | 1996 |
| Twórca | Microsoft | Microsoft |