forgottenrealm
Goto Top

Rückgabe einer Variable von VBS nach Batch

Guten Morgen


Wieder einmal habe ich ein mehr oder weniger kleines Problem mit Batch

Das folgende VBScript wird in Batch erstellt und aufgerufen:

Dim DateiGroesse
Dim Einheit

DateiGroesse = 2453896529
Einheit = "Nix"  

Select Case Len(DateiGroesse)

Case 1, 2, 3 'Byte  
	DateiGroesse = DateiGroesse
	Einheit = "Byte"  

Case 4, 5, 6 'KiloByte  
	DateiGroesse = Round(DateiGroesse / 1024, 2)
	Einheit = "KiloByte"  

Case 7, 8, 9 'MegaByte  
	DateiGroesse = Round(DateiGroesse / 1024 / 1024, 2)
	Einheit = "MegaByte"  

Case 10, 11, 12 'GigaByte  
	DateiGroesse =  Round(DateiGroesse / 1024 / 1024 / 1024, 2)
	Einheit = "GigaByte"  

Case 13, 14, 15 'TeraByte  
	DateiGroesse =  Round(DateiGroesse / 1024 / 1024 / 1024 / 1024, 2)
	Einheit = "TeraByte"  

Case Else
	DateiGroesse = 0
	Einheit = "Nix"  

End Select

WScript.Echo DateiGroesse & " " & Einheit  

Die direkte Ausführung liefert mir ein Einwandfreies Ergebnis (Dateigröße und Einheit) von 2,29 GigaByte

Nun möchte ich diese Ausgabe allerdings im Batchscript weiter verwenden.

Dazu rufe ich mit:
for /F %%I IN ('cscript //nologo C:\VBSFile.vbs') DO Set Var=%%I  

sie VBS Datei auf und gebe mir anschließend die Variabel %Var% aus. In dieser steht dann allerdings nur der erste Teil (2,29), ohne die Einheit.

Auch das Arbeiten mit ... DO Set Var="%%I" und WScript.Echo """" & DateiGroesse & " " & Einheit & """" brachte keine besserung.


Wo liegt das Problem?

Content-Key: 176610

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

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: 60730
60730 22.11.2011 um 09:25:35 Uhr
Goto Top
moin,

ohne das jetzt genauer unter die Lupe zu nehmen...

for /F "delims=" %%I IN ('cscript //nologo C:\VBSFile.vbs') DO Set "Var" == "%%I"  


Gruß
Mitglied: ForgottenRealm
ForgottenRealm 22.11.2011 um 10:20:48 Uhr
Goto Top
Moin face-smile

Funktioniert leider nicht, bekomme da nur das allseits bekannte ECHO ist ausgeschaltet zurück

Probiert mit:

Set "Var" == "%%I"  
Set "Var"=="%%I"  

Set "Var" = "%%I"  
Set "Var"="%%I"  

Und hier gibts nach wie vor nicht die komplette Variable:

Set Var = "%%I"  
Set Var="%%I"  
Mitglied: Skyemugen
Skyemugen 22.11.2011 um 10:27:58 Uhr
Goto Top
Aloha, ...

hm ...
also
for /F "delims=" %%I IN ('cscript //nologo E:\Skripte\test.vbs') DO set "var=%%I"  
echo %var%
funktioniert einwandfrei
E:\Skripte>for /F "delims=" %I IN ('cscript //nologo E:\Skripte\test.vbs') DO se
t "var=%I"

E:\Skripte>set "var=2,29 GigaByte"

E:\Skripte>echo 2,29 GigaByte
2,29 GigaByte

E:\Skripte>pause
Drücken Sie eine beliebige Taste . . .
Mitglied: ForgottenRealm
ForgottenRealm 22.11.2011 um 10:44:53 Uhr
Goto Top
Na klasse, hab ich Depp das "delims=" vergessen ...

Nun funktionierts, vielen Dank face-smile
Mitglied: 60730
60730 22.11.2011 um 14:05:56 Uhr
Goto Top
Servus,

[OT]
Funktioniert leider nicht, bekomme da nur das allseits bekannte ECHO ist ausgeschaltet zurück
Das kenn ich garnicht, denn bei mir müßte da das Gegenteil ECHO ist eingeschaltet (ON). geschrieben werden face-wink

Jetzt verrat uns doch nicht, dass du auch ein Alphabetagammatester bist, der €echo off kennt, du warst mir so symphatisch face-wink
[/OT]

freut mich