jcunews

DevEject.vbs

Nov 19th, 2019
535
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. sub help
  2.   wscript.echo "Usage:" & vbcrlf _
  3.     & vbcrlf & "  DevEject /list" _
  4.     & vbcrlf & "    List ejectable devices." & vbcrlf _
  5.     & vbcrlf & "  DevEject /eject {device name}" _
  6.     & vbcrlf & "    Eject specified device."
  7.   wscript.quit 1
  8. end sub
  9.  
  10. if wscript.arguments.count = 0 then help
  11. cmd = -1
  12. s = ucase(wscript.arguments(0))
  13. if s = "/EJECT" then
  14.   cmd = 1
  15.   if wscript.arguments.count = 1 then help
  16.   name = ucase(wscript.arguments(1))
  17. elseif s = "/LIST" then
  18.   cmd = 0
  19. else
  20.   help
  21. end if
  22.  
  23. set sa = createobject("shell.application")
  24. set fd = sa.namespace("::{26EE0668-A00A-44D7-9371-BEB064C98683}\0\::{A8A91A66-3A7D-4424-8D24-04E180695C7A}")
  25. if fd is nothing then
  26.   wscript.echo "This script requires administrator rights."
  27.   wscript.quit 2
  28. end if
  29.  
  30. cnt = 0
  31. if cmd = 0 then 'list
  32.  for each fi in fd.items
  33.     for each vi in fi.verbs
  34.       if vi.name = "&Eject" then
  35.         cnt = cnt + 1
  36.         wscript.echo fi.name
  37.         exit for
  38.       end if
  39.     next
  40.   next
  41.   if cnt = 0 then wscript.echo "No ejectable device found."
  42. else 'eject
  43.  for each fi in fd.items
  44.     if ucase(fi.name) = name then
  45.       cnt = 1
  46.       for each vi in fi.verbs
  47.         if vi.name = "&Eject" then
  48.           vi.doit
  49.           wscript.echo "Ejected " & fi.name & "."
  50.           wscript.quit
  51.         end if
  52.       next
  53.     end if
  54.   next
  55.   if cnt > 0 then
  56.     wscript.echo "Specified device is not ejectable."
  57.   else
  58.     wscript.echo "Specified device is not found."
  59.   end if
  60. end if
RAW Paste Data