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-Key: 282914

Url: https://administrator.de/contentid/282914

Printed on: April 23, 2024 at 23:04 o'clock

Mitglied: 114757
Solution 114757 Sep 15, 2015 updated at 13:09:09 (UTC)
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
Member: racer1601
racer1601 Sep 15, 2015 at 13:09:35 (UTC)
Goto Top
Danke das hat geholfen!
Member: racer1601
racer1601 Sep 16, 2015 at 13:09:43 (UTC)
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
Mitglied: 114757
114757 Sep 16, 2015 updated at 13:22:02 (UTC)
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.