Variable an Batch-Datei übergeben
Hallo Forum,
ich muss in einem VB.NET-Skript eine Batch-Datei aufrufen. Das Batch-File benötigt jedoch eine Variable, die erst im Laufe des .NET-Skripts mit einem Wert belegt wird. Wie kann ich diese Variable an die Batch-Datei übergeben?
Vielen Dank,
M. Born
ich muss in einem VB.NET-Skript eine Batch-Datei aufrufen. Das Batch-File benötigt jedoch eine Variable, die erst im Laufe des .NET-Skripts mit einem Wert belegt wird. Wie kann ich diese Variable an die Batch-Datei übergeben?
Vielen Dank,
M. Born
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 209085
Url: https://administrator.de/forum/variable-an-batch-datei-uebergeben-209085.html
Ausgedruckt am: 06.04.2025 um 10:04 Uhr
9 Kommentare
Neuester Kommentar
Moin MarcoBorn,
vermutlich wird beim Aufruf über Bande die Batchdatei aus einem anderen Laufwerk/Pfad gerufen.
Beim manuellen Aufruf der Batchdatei, der wahrscheinlich aus dem Verzeichnis "C:\Users\....\Verpatch\" erfolgt, wird in ebendiesem Verzeichnis auch die "verpatch.exe" gesucht und gefunden - bei einem Aufruf über VB auch dem Verzeichnis "X:\Y" wird diese Verpatch im Verzeichnis "X:\Y" gesucht und nicht gefunden.
-> Gib am besten der Verpatch.exe in der Batchdatei den vollständigen Pfad mit.
Oder lass die Batch-Hülle weg und rufe die Verpatch.exe aus VB direkt auf.
Grüße
Biber
vermutlich wird beim Aufruf über Bande die Batchdatei aus einem anderen Laufwerk/Pfad gerufen.
Beim manuellen Aufruf der Batchdatei, der wahrscheinlich aus dem Verzeichnis "C:\Users\....\Verpatch\" erfolgt, wird in ebendiesem Verzeichnis auch die "verpatch.exe" gesucht und gefunden - bei einem Aufruf über VB auch dem Verzeichnis "X:\Y" wird diese Verpatch im Verzeichnis "X:\Y" gesucht und nicht gefunden.
-> Gib am besten der Verpatch.exe in der Batchdatei den vollständigen Pfad mit.
Oder lass die Batch-Hülle weg und rufe die Verpatch.exe aus VB direkt auf.
Grüße
Biber
Hallo MarcoBorn,
Der
Wenn du den Errorlevel des ausgeführten Befehls erhalten möchtest kannst du das so machen:
oder mit dem Exec-Object der WSHSHELL:
Grüße Uwe
Der
Shell
Befehl in VB gibt nicht einen Fehlerwert zurück sondern die Task-ID des gestarteten Prozesses als Variant(Double).Wenn du den Errorlevel des ausgeführten Befehls erhalten möchtest kannst du das so machen:
Set WshShell = CreateObject("Wscript.Shell")
errorlvl = wshshell.Run ("""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\verpatch.exe"" ""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\fkgendna-packed.xll"" /va version_nr /s desc ""FKGenDNA"" /s copyright ""(C) 2004-2013, DOK"" /pv version_nr " & version_nr, 0, true)
MsgBox(errorlvl)
Set WshShell = CreateObject("Wscript.Shell")
set oExec = wshshell.Exec ("""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\verpatch.exe"" ""C:\Users\Born\Documents\SharpDevelop Projects\tools\Verpatch\fkgendna-packed.xll"" /va version_nr /s desc ""FKGenDNA"" /s copyright ""(C) 2004-2013, DOK"" /pv version_nr " & version_nr)
Do While oExec.Status = 0
DoEvents
Loop
msgbox (oExec.ExitCode)