0

文字列 ",vmhgfs" (coma は重要です) がレジストリ データに存在する場合、これを削除できる vbs スクリプトが必要です。

レジストリ キーは次のとおりです。「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order」

レジストリ値は「ProviderOrder」です (文字列値です)

データは「PICAClientNetwork、SnacNp、vmhgfs、RDPNP、LanmanWorkstation、webclient、PnSson」のようなものですが、コンピューターによって大きく異なる場合があります。

スクリプトは、文字列「,vmhgfs」がこのデータに存在するかどうかを確認し、存在する場合は削除する必要があります。存在しない場合は、終了します。

私は VBS の初心者で、次のスクリプトを書き始めました。

    Dim objShell, RegValue, RegData
    RegValue = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder"
    set objShell = CreateObject("Wscript.Shell")
    RegData = objShell.RegRead(RegKey)
    wscript.echo RegData

返されたエコーは、私が正しい道を進んでいることを示しています...しかし、さらに先に進むには十分なスキルがありません...それを終えるのを手伝ってくれませんか! よろしくお願いします!

編集(アドバイスを適用する前に):

こんにちは、ありがとうございます。スクリプトを書きました。

Dim objShell, RegValue, RegData, NewRegData
RegValue = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder"
set objShell = CreateObject("Wscript.Shell")
RegData = objShell.RegRead(RegValue)

if Instr(RegData,",vmhgfs") > 0 then
NewRegData = Replace(RegData,",vmhgfs", "")
objshell.Regwrite RegValue ,NewRegData
    Else IF Instr(RegData,"vmhgfs") > 0 then
    NewRegData2 = Replace(RegData,"vmhgfs,", "")
    objshell.Regwrite RegValue ,NewRegData2
End If
set objshell = nothing

最初の「IF」は、「,vmhgfs」が文字列の途中にあるケースを管理するためのものです。OK 2番目の「IF」は、「vmhgfs」が文字列の先頭にあるケースを管理することです

ただし、「,vmhgfs」が文字列の最後にある場合、これは機能しません!!!

私はそれを理解していません、助けてください!

4

2 に答える 2

0

これはどう?

if InStr(1,RegData,",vmhgfs") > 0 then
NewRegData = left(RegData,InStr(1,RegData,",vmhgfs")) & right(RegData,7+InStr(1,RegData,",vmhgfs"))

または(Ansgarによると:))

if InStr(1,RegData,",vmhgfs") > 0 then
newRegData = Replace(RegData, ",vmhgfs", "")

次に、レジストリに書き戻すだけです

于 2013-09-27T10:40:02.847 に答える