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

それ以外の場合、それを開始するのがバッチファイルでなければならない場合は、コマンドでvbスクリプトを開始できますがStart、バッチファイルに値を返す方法がわからないため、今考えられる唯一の方法はFileSystemObject (FSO)を使用してドライブをファイルに書き込む vb スクリプトを実行すると、次のようなコードを使用してバッチ ファイルでそれを読み取ることができます。

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

私がリンクしている FSO のドキュメントには、テキスト ファイルに書き込むための非常に簡単なサンプルが含まれています。

于 2011-08-14T19:59:10.583 に答える