' Zero out free space on a hard drive ' Aaron Ward ' Slowfuse.com 'set defaults myFilename = "Delete.me" myMaxFileSize = 3000000000 ' about 3 gig. myWriteSize = 32768 ' this is arbitrarily set for speed myString = chr(0) ' this should be one byte set myArgs = wscript.Arguments set myFs = CreateObject("Scripting.FilesystemObject") If myArgs.Count > 0 Then myDriveLetter = left(myFs.GetAbsolutePathName(myArgs(0)),1) Else myDriveLetter = "c" End If If myfs.FolderExists(myDriveLetter & ":\") Then else wscript.echo "Drive " & myDriveLetter & ": is not a good choice." & vbcrlf wscript.quit end if wscript.echo "Using drive " & myDriveLetter & ":\" & vbcrlf Set mydrive = myfs.GetDrive(myfs.GetDriveName(myDriveLetter & ":\")) ' seems odd, but now I have an object. if mydrive.freespace = 0 then wscript.echo myDriveLetter & " has no free space." end if for mem = 0 to myWriteSize mychunk = mychunk & myString next WriteStuff myDrive.Freespace, myfs, 0 'wscript.echo mydrive.freespace & " : " & myMaxFileSize & vbcrlf sub WriteStuff(myFreeSpace, myfs, i) myfn = mydriveletter & ":\" & myFilename & i ' create unique filename if myFreeSpace < myMaxFileSize then ' check for max size mylimit = 0 ' write until zero free space else mylimit = myFreeSpace - myMaxFileSize ' only write maxFileSize end if if mylimit <>0 and i<>0 then ' lots to write and we already have a large file. mylastfilename = mydriveletter & ":\" & myFilename & (i-1) myfs.CopyFile mylastfilename,myfn,true else set mytmpfile = myfs.CreateTextFile(myfn,false,false) do while myDrive.Freespace > myLimit ' write in chuncks of myWriteSize if myDrive.Freespace - myLimit > myWriteSize then mytmpfile.write mychunk else mytmpfile.write myString end if loop mytmpfile.close end if if mylimit > 0 then WriteStuff myDrive.Freespace,myfs, i+1 end if myfs.deletefile myfn end sub