title: VBScript Out of String space
body: <p>I got the following code to capture information for files on a specified drive, I ran the script againts a 600 GB hard drive on one of our servers and after a while I get the error </p>
  
  <blockquote>
    <p>Out of String space; "Join".
    Line 34, Char 2</p>
  </blockquote>
  
  <p><strong>For this code, file script.vbs</strong>:</p>
  
  <pre><code>Option Explicit 
  Dim objFS, objFld 
  Dim objArgs 
  Dim strFolder, strDestFile, blnRecursiveSearch 
  ''Dim strLines 
  Dim strCsv 
  ''Dim i 
  
  ''    i = 0 
  
  '   'Get the commandline parameters 
  '   Set objArgs = WScript.Arguments  
  '   strFolder = objArgs(0) 
  '   strDestFile = objArgs(1) 
  '   blnRecursiveSearch = objArgs(2) 
  
      '######################################## 
      'SPECIFY THE DRIVE YOU WANT TO SCAN BELOW 
      '######################################## 
      strFolder = "C:\"  
      strDestFile = "C:\InformationOutput.csv"  
      blnRecursiveSearch = True 
  
      'Create the FileSystemObject 
      Set objFS=CreateObject("Scripting.FileSystemObject") 
      'Get the directory you are working in  
      Set objFld = objFS.GetFolder(strFolder) 
  
      'Open the csv file 
      Set strCsv = objFS.CreateTextFile(strDestFile, True)  
  
  ''    'Write the csv file 
  ''    Set strCsv = objFS.CreateTextFile(strDestFile, True) 
      strCsv.WriteLine "File Path,File Size,Date Created,Date Last Modified,Date Last Accessed" 
  ''    strCsv.Write Join(strLines, vbCrLf) 
  
      'Now get the file details  
      GetFileDetails objFld, blnRecursiveSearch
  
  ''    'Close and cleanup objects 
  ''  strCsv.Close 
  
  ''    'Write the csv file 
  ''    Set strCsv = objFS.CreateTextFile(strDestFile, True) 
  ''    For i = 0 to UBound(strLines)  
  ''    strCsv.WriteLine strLines(i)  
  ''    Next  
  
      'Close and cleanup objects 
      strCsv.Close 
      Set strCsv = Nothing 
      Set objFld = Nothing 
      Set strFolder = Nothing 
      Set objArgs = Nothing 
  
  
  '---------------------------SCAN SPECIFIED LOCATION------------------------------- 
  Private Sub GetFileDetails(fold, blnRecursive)
  Dim fld, fil
  dim strLine(4)
  
  on error resume next
      If InStr(fold.Path, "System Volume Information") &lt; 1 Then
          If blnRecursive Then
              'Work through all the folders and subfolders
              For Each fld In fold.SubFolders
                  GetFileDetails fld, True 
                  If err.number &lt;&gt; 0 then
                      LogError err.Description &amp; vbcrlf &amp; "Folder - " &amp; fold.Path
                      err.Clear 
                  End If
              Next
          End If
  
          'Now work on the files
          For Each fil in fold.Files
              strLine(0) = fil.Path
              strLine(1) = fil.Size
              strLine(2) = fil.DateCreated
              strLine(3) = fil.DateLastModified
              strLine(4) = fil.DateLastAccessed
  
          strCsv.WriteLine Join(strLine, ",")
  
  
              if err.number &lt;&gt; 0 then
                  LogError err.Description &amp; vbcrlf &amp; "Folder - " &amp; fold.Path &amp; vbcrlf &amp; "File - " &amp; fil.Name
                  err.Clear 
              End If
          Next
      End If
  end sub
  
  Private sub LogError(strError)
  dim strErr
      'Write the csv file
      Set strErr = objFS.CreateTextFile("C:\test\err.log", false)
      strErr.WriteLine strError
      strErr.Close
  
      Set strErr = nothing
  
  End Sub
  </code></pre>
  
  <p><strong>RunMe.cmd</strong></p>
  
  <pre><code>wscript.exe "C:\temp\script\script.vbs"
  </code></pre>
  
  <p>How can I avoid getting this error? The server drives are quite a bit &lt;????> and I would imagine that the CSV file would be at least 40 MB.</p>
  
  <p>Edit by Guffa:<br>
  I commented out some lines in the code, using double ticks ('') so you can see where.</p>