Variablen von Batch zu VBS übergeben
Hallo liebe Com,
ich versuche mich gerade in der Batch und vbs Programmierung und bin daher sozusagen noch Anfänger.
Ich versuche nun mit einer Batch 2 Variable mittels Eingabe an eine vbs datei weiter zu geben
Ich habe bereits folgendes versucht.
test.bat
@echo off
winput "set name=$input" "Please enter name:"
winput "set password=$input" "Enter password:" /pass
::winput ist ein zustätzliches Tool um die Passworteingabe zu verbergen
start test.vbs name password
:: ich starte meine vbs und versuche dann die variable name und password an die vbs datei zu übergeben
Die erste Variable (also "name") wird an die vbs Datei übergeben jedoch die zweite nicht. Was mache ich falsch?
Ich hoffe ihr wisst Rat
Grüße
ciejay
PS: Ich benutze Win7 und Win8
ich versuche mich gerade in der Batch und vbs Programmierung und bin daher sozusagen noch Anfänger.
Ich versuche nun mit einer Batch 2 Variable mittels Eingabe an eine vbs datei weiter zu geben
Ich habe bereits folgendes versucht.
test.bat
@echo off
winput "set name=$input" "Please enter name:"
winput "set password=$input" "Enter password:" /pass
::winput ist ein zustätzliches Tool um die Passworteingabe zu verbergen
start test.vbs name password
:: ich starte meine vbs und versuche dann die variable name und password an die vbs datei zu übergeben
Die erste Variable (also "name") wird an die vbs Datei übergeben jedoch die zweite nicht. Was mache ich falsch?
Ich hoffe ihr wisst Rat
Grüße
ciejay
PS: Ich benutze Win7 und Win8
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 226726
Url: https://administrator.de/forum/variablen-von-batch-zu-vbs-uebergeben-226726.html
Ausgedruckt am: 13.05.2025 um 12:05 Uhr
10 Kommentare
Neuester Kommentar
Hallo ciejay, Willkommen im Forum!
das machst du folgendermaßen. In deiner VBS-Datei kannst du so Kommandozeilenparameter abfragen:
dein VBS-Script rufst du dann so aus deiner Batchdatei auf:
Grüße Uwe
das machst du folgendermaßen. In deiner VBS-Datei kannst du so Kommandozeilenparameter abfragen:
parameter1 = WScript.Arguments.Item(0)
parameter2 = WScript.Arguments.Item(1)
wscript.echo "Der Name lautet:" & parameter1
wscript.echo "Das Passwort lautet: " & parameter2
wscript.exe //NOLOGO //B test.vbs "%name%" "%password%"
Die erste Variable (also "name") wird an die vbs Datei übergeben jedoch die zweite nicht. Was mache ich falsch?
Du meintest wohl eher (Anführungszeichen beachten; der Name und das Passwort könnten ja Leerzeichen beinhalten):start test.vbs "%name%" "%password%"
---------------------------
Windows Script Host
---------------------------
Syntax: WScript Skriptname.Erweiterung [Option...] [Argumente...]
Optionen:
//B Batch-Modus: Zeigt keine Skriptfehler und Aufforderungen an
//D Aktives Debuggen aktivieren
//E:engine Modul zum Ausführen des Skripts verwenden
//H:CScript Ändert den Standardskripthost auf CScript.exe um
//H:WScript Ändert den Standardskripthost auf WScript.exe um (Standard)
//I Interaktiver Modus (Standard; Gegenteil von //B)
//Job:xxxx Führt einen WSF-Auftrag aus
//Logo Zeigt das Logo an (Standard)
//Nologo Zeigt kein Logo an: Bei Ausführung wird kein Banner angezeigt
//S Speichert die aktuellen Befehlszeilenoptionen für diesen Benutzer
//T:nn Timeout in Sekunden: Maximale Zeit, die ein Skript laufen darf
//X Führt das Skript im Debugger aus
B
mit angebenGrüße Uwe
mach das ganze doch direkt mit Powershell:
dann hast du alles in einem
Das zeigt dir den Standard-Windows Passwort-Dialog und mappt danach mit den Daten das Laufwerk.
Grüße Uwe
ps.s zur Code-Formatierung siehe: Code Formatierungen
$cred = Get-Credential -Message "Bitte Benutzernamen und Kennwort für das Netzlaufwerk eingeben"
if ($cred -ne $null){
$user = $cred.GetNetworkCredential().UserName
$pass = $cred.GetNetworkCredential().Password
net use z: "\\server\share" /user:$user $pass
}
Grüße Uwe
ps.s zur Code-Formatierung siehe: Code Formatierungen
Anleitung: Wie starte ich Powershell-Scripte
- Zuerst speicherst man den Code in einer Textdatei mit der Endung .ps1.
- Wenn man zum ersten mal Powershell-Scripte ausführt, musst man einmalig vorher noch das Ausführen von Scripten im User-Account freischalten. Dazu öffnet man eine Powershell-Konsole (powershell.exe) und gibt dort den Befehl
Set-ExecutionPolicy RemoteSigned -Force
ein. Noch ein Hinweis für 64-Bit-Systeme: Hier sollte sowohl für die 32bit und 64Bit Variante der Powershell die Policy in einer Admin-Konsole gesetzt werden:Set-ExecutionPolicy RemoteSigned -Force; start-job { Set-ExecutionPolicy RemoteSigned -Force } -RunAs32
- Jetzt kann das Powershell-Script in der Konsole mit Eingabe des Pfades der Scriptdatei, oder mit einem Rechtsklick auf die Script-Datei :Mit Powershell ausführen gestartet werden.
Zitat von @ciejay:
Mhm das is dann auch nicht die Optimale Lösung wenn man Powershell und das Script erst über die Konsole aktivieren muss.
Vorallem braucht man dann auch Adminrechte. Wenn man keine hat wäre das somit schlecht.
mit einem Mhm das is dann auch nicht die Optimale Lösung wenn man Powershell und das Script erst über die Konsole aktivieren muss.
Vorallem braucht man dann auch Adminrechte. Wenn man keine hat wäre das somit schlecht.
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
benötigt man keine Admin-Rechte.Die Policy kann man ja mit einer GPO auf den Rechnern Global entsprechend konfigurieren...