Batch Datei durch VBS Datei öffnen?
Geht es das man eine Batchdatei durch eine VBS Datei öffnet?
Und wenn ja wie?
Vielen Dank schon mal für die Antworten!
2 Antworten
Eigentlich macht es keinen Sinn eine Batch aus einem VBS aufzurufen, Das ist als würde man aus einem Porsche austeigen um mit einem Traktor weiter zu fahren.
Naja, es ist schon vermessen von mir, VBS als Porsche zu bezeichnen. (Zumal VBS schon seit fast 15 Jahren auf dem Scrottplatz gammelt.)
VBS kann alles was Batch kann und noch mehr... also warum dann in der Funktionalität abwärts steigen?
Egal....
Set objShell = WScript.CreateObject("WScript.Shell")
' .run "Programm/Script" , Fensterstyle, aufBeendenWarten?
' hier auf Schließen der Batch warten
objShell.Run "demo.cmd",1,true
WScript.Echo "Hab gewartet"
' hier nicht auf Schließen der Batch warten
objShell.Run "demo.cmd",1,false
WScript.Echo "Hab nicht gewartet"
Set objShell = Nothing
...oder...
Set objShell = wscript.createobject("wscript.shell")
Set oExec = objShell.Exec("demo.cmd")
Set objShell = Nothing
...oder...
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "demo.cmd", "", "", "open", 1
WScript.Echo "Hab nicht gewartet"
Set objShell = Nothing
Batch mit Admin aufrufen...
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "demo.cmd", "", "", "runas", 1
WScript.Echo "Hab nicht gewartet"
Set objShell = Nothing
Eigentlich verwendet man VBScript nur noch als Hilfsscripte in einer Batch um dinge zu erledigen, welche Batch nicht kann...
Admin.cmd
@echo off
set "elevator=%temp%\%~n0.elevate.vbs"
net session >nul 2>&1 && goto :adminTasks
rem sonst erzeuge ein kleines VisualBasicScript und führe es aus
if not exist "%elevator%" (
echo CreateObject^("Shell.Application"^).ShellExecute "%~f0","","", "runas", 1 > "%elevator%"
)
cscript /nologo "%elevator%"
exit /b
:adminTasks
rem Hier kommt alles rein, was mit erhöhten Rechten ausgeführt wird!
echo Ich habe Adminrechte
pause
VBScript ist schon lange tot und wird nur noch aus Kompatibilität im System gehalten. Batch wird in den nächsten Jahren nach und nach verschwinden, da das neue WindowsTerminal bevorzugt auf Powershell setzt.
Stecke nicht mehr allzuviel Energie in Technologien aus dem vergangenen Jahrhundert. Wozu etwas lernen, was es bald nicht mehr gibt?
Konzentriere Dich auf Powershell für Scripting oder C# für Applicationen.