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

Printed on: April 16, 2024 at 14:04 o'clock

Mitglied: 60730
60730 Nov 22, 2011 at 08:25:35 (UTC)
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ß
Member: ForgottenRealm
ForgottenRealm Nov 22, 2011 at 09:20:48 (UTC)
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"  
Member: Skyemugen
Skyemugen Nov 22, 2011 at 09:27:58 (UTC)
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 . . .
Member: ForgottenRealm
ForgottenRealm Nov 22, 2011 at 09:44:53 (UTC)
Goto Top
Na klasse, hab ich Depp das "delims=" vergessen ...

Nun funktionierts, vielen Dank face-smile
Mitglied: 60730
60730 Nov 22, 2011 at 13:05:56 (UTC)
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