我有一个VBScript列出了驱动器的字母。我想在批处理脚本中获取驱动器的字母并在某处使用它。例如,认为VBScript的输出是“C:\; D:\; F:\”,然后我想告诉批处理脚本获取此信息从中删除C:\并写入D:\; F:\ in a文本文件。我想只通过批处理脚本来完成它。
以下是一个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
那怎么做? 谢谢, Majid Pasha
答案 0 :(得分:0)
不确定这是否适合您,但您可以从vb脚本执行批处理文件并将驱动器列表作为参数传递。
示例VB Sript:
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的文档包含一个非常简单的示例,用于写入文本文件。