Probleme mit Schleife

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    Probleme mit Schleife

    Moin Zusammen,

    Ich habe ein Problem mit folgendem Code:

    Quellcode

    1. rootfolder = "D:\My Documents\Vorlagen"
    2. Set fso = WScript.CreateObject("Scripting.FileSystemObject")
    3. ' Setze Variable
    4. Dim fso, MyFile
    5. Root = "HKEY_CURRENT_USER"
    6. key = "\Software\Microsoft\Windows\CurrentVersion\Explorer\"
    7. valname = "Logon User Name"
    8. std = Hour(Now)
    9. min = Minute(Now)
    10. sec = Second(Now)
    11. zeit = std&"."&min&"."&sec
    12. Set WshNetwork = WScript.CreateObject("WScript.Network")
    13. Dim WSHShell
    14. Set WSHShell = WScript.CreateObject("WScript.Shell")
    15. sregval = WSHShell.RegRead (Root + key + valname)
    16. WScript.Echo "Username: " + sregval
    17. 'Run checkfolder
    18. CheckFolder (FSO.getfolder(rootfolder))
    19. Sub CheckFolder(objCurrentFolder)
    20. Set fso = CreateObject("scripting.filesystemobject")
    21. Set MyFile = fso.CreateTextFile("c:\mailsize_" & WshNetwork.ComputerName & "_" & zeit & ".txt")
    22. MyFile.WriteLine (sregval & ";" & WshNetwork.ComputerName & ";")
    23. For Each objFolder In objCurrentFolder.SubFolders
    24. FolderSize = objFolder.Size
    25. Tmp = (FormatNumber(FolderSize, 0, , , 0)/1024)/1024
    26. Pfad = ObjFolder.Path
    27. MyFile.WriteLine (Tmp & ";" & Pfad & VBCRLF)
    28. ' icount = icount + 1
    29. Next
    30. MyFile.Close
    31. Wscript.Echo Tmp & ";" & objFolder
    32. End Sub


    Weitesgehend funktioniert alles wie gewollt also das script schreibt mit computer und windows login namen mit ";" in eine textdatei welche auch richtig benannt ist.
    Das einzige Problem ist er schreibt mir nicht die Folgergröße in die Textdatei und ich weiss leider nicht genau woran es liegt =/. Das ";" übernimmt er auch noch in die textdatei
    nur werden die Variablen - Tmp & ";" & Pfad - nicht übergeben.

    Vielleicht kann da jemand helfen, danke im vorraus.
    Ich weis zwar nicht, was Du vor hast, aber Zeile 26 sieht doch etwas suspekt aus. So solltest es eigentlich besser gehen:
    Tmp = FormatNumber((FolderSize/1024)/1024,"0")

    Wieso packst Du in Zeile 28 noch ein vbcrlf dazu? Der Befehl heißt doch schon writeline und erzeugt automatisch einen Zeilenumbruch am Ende.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).