0

我有一个列出驱动器字母的 VBScript。我想在批处理脚本中获取驱动器的字母并在某处使用它。例如,认为 VBScript 的输出是“C:\;D:\;F:\”,然后我想告诉批处理脚本获取此信息,从中删除 C:\ 并将 D:\;F:\ 写入文本文件。我只想通过批处理脚本来做到这一点。

下面是一个 VBScript 示例:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colDisks = objWMIService.ExecQuery _
    ("Select * from Win32_LogicalDisk")

drives = ""
For Each objDisk in colDisks
  if drives > "" then
    drives = drives & chr(13)
  end if
  drives = drives & objDisk.DeviceID & "\"
Next

那么该怎么做呢?谢谢,马吉德帕夏

4

1 回答 1

0

不确定这是否适合您,但您可以从 vb 脚本执行批处理文件并将驱动器列表作为参数传递。

示例 VB 脚本:

dim sh
dim drives
drives = "C:\;D:\;F:\"
set sh = CreateObject("wscript.shell")
sh.run "test.bat " & Chr(34) & drives & Chr(34)

您可以通过创建文件 test.bat 来测试它:

@echo off
echo %1
pause

否则,如果它必须是启动它的批处理文件,您可以使用Start命令启动 vb 脚本,但不确定如何将值返回到批处理文件,所以我现在能想到的唯一方法是vb 脚本使用FileSystemObject (FSO)将驱动器写入文件,然后您可以使用类似于以下的代码在批处理文件中读取该文件:

start c:\test.vbs 
set /p drives= < test.txt
echo %drives%
pause

我为 FSO 链接的文档包括一个非常简单的用于写入文本文件的示例。

于 2011-08-14T19:59:10.583 回答