racer1601
Goto Top

Variable aus VBS in Batch einlesen

Hallo

ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme.

Ich will das mir das VBS einen Datum -7 tage berechnet und einen Ordner erstellt. Dieses Funktioniert auch. Dann Soll es den Inhalt der Variable Ordner in die Variable "UebergabeBatch" einfügen und Das Batch file soll dises Variable auslesen und Anzeigen, wenn das dann geht weiterverarbeiten im nächsten Stepp.
Aber die Batch zeigt mir immer nur Echo off an!

Hier mal der Code des VBS:

dim UebergabeBatch, fso, Ordner
set fso = CreateObject("Scripting.FileSystemObject")	  

Function Zweistellig(Zahl)
   if len(Zahl) = 1 then Zahl = 0 & Zahl
   Zweistellig = Zahl
End Function
Ordner = DateAdd("d", -7, Date)  
Ordner = Right(Year(Ordner), 4) & Zweistellig(Month(Ordner)) & Zweistellig(Day(Ordner)) 
On Error Resume Next
fso.CreateFolder("C:\Backup\" & Ordner)  
set UebergabeBatch = Ordner

Und der Aufruf im Batch:

@echo off

cscript C:\Datensicherung\BackupToExternel\datumsberechnung1.vbs

pause

for /F "delims=" %%I IN ('cscript //nologo C:\Datensicherung\BackupToExternel\datumsberechnung1.vbs') DO set "var=%%I"  

echo %var%

pause

exit

Gruß und danke schon mal Alex

Content-ID: 282914

Url: https://administrator.de/forum/variable-aus-vbs-in-batch-einlesen-282914.html

Ausgedruckt am: 22.12.2024 um 17:12 Uhr

114757
Lösung 114757 15.09.2015 aktualisiert um 15:09:09 Uhr
Goto Top
Moin Alex,
anstatt dieser Zeile, (welche übrigens Quatsch ist, weil "Ordner" kein Objekt sondern ein String ist):
set UebergabeBatch = Ordner
in deiner VBS, schreibst du stattdessen
wscript.echo Ordner
Gruß jodel32
racer1601
racer1601 15.09.2015 um 15:09:35 Uhr
Goto Top
Danke das hat geholfen!
racer1601
racer1601 16.09.2015 um 15:09:43 Uhr
Goto Top
Hallo

jetzt habe ich nur das problem das die Messegbox von vbs offen bleibt. wie bekomme ich die zu wenn die Variable übergeben ist?

der VB Code sieht jetzt so aus:

dim fso, Ordner
set fso = CreateObject("Scripting.FileSystemObject")	  

Function Zweistellig(Zahl)
   if len(Zahl) = 1 then Zahl = 0 & Zahl
   Zweistellig = Zahl
End Function
Ordner = DateAdd("d", -7, Date)  
Ordner = Right(Year(Ordner), 4) & Zweistellig(Month(Ordner)) & Zweistellig(Day(Ordner)) 
On Error Resume Next
fso.CreateFolder("C:\Backup\Backups_Shares_User\" & Ordner)  

wscript.echo Ordner

wscript.quit
114757
114757 16.09.2015 aktualisiert um 15:22:02 Uhr
Goto Top
Bei der Verwendung von cscript für den Aufruf deines VBS-Scripts kannst du keine MsgBox bekommen, denn hier wird alles was du echo'st auf die Konsole umgeleitet !
Die kommt nur wenn man das Skript per Doppelklick aufruft, da hier wscript für die Ausführung benutzt wird.