レジストリ エントリは次のようになります。
A1="OS Ver";A2="Patch Ver";A3="Location Number"
...
私のスクリプトは、インスタンス「A3」値のロケーション番号を取得し、それを作成しようとしている VB プログラムに渡します。VB プログラムは入力を読み取り、A3 が存在するかどうかを判断し、値を変更します。
VB コードのスニペットを次に示します。
Module Main Public Sub Set_A3(declare String) Open Registry GetValue A3 が存在する場合、A3="ロケーション番号" を入力 Registry.Close End Sub に変更します。
Sub Main() 行を文字列として宣言 Readline 行に入力呼び出し関数が含まれている場合 End Sub
私が立ち往生しているのは、プログラムが正常に動作するようなコマンドからです。ただし、スクリプト内に組み込むとすぐに、他のすべてのエントリの読み取りがハングします。
質問、場所番号を取得する前にプログラムがスクリプトから特殊文字に遭遇したときに readline 関数を呼び出して停止するにはどうすればよいですか?
全体にアプローチする他の方法はありますか??!!
問題の説明がうまくいったことを願っています。ご不明な点がございましたら、お尋ねください。本当に助けていただきありがとうございます。
Ken White のリクエストによるコード:
Imports System.Data.OleDb
Imports System.Net.NetworkInformation
Imports Microsoft.Win32
Module Main
Public Sub Set_A3(ByVal A3 As String)
Try
If A3 <> "" Then
Dim sConfig As String
Dim regKey As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\SS\Location\Variables", True)
sConfig = regKey.GetValue("VariableGroups")
Dim sConfigNew As String = ""
Dim s() As String = sConfig.Split(";")
For i As Integer = 0 To s.Count - 1
If s(i).Contains("A3") Then
s(i) = String.Format("A3={1}{0}{1}", AU, Chr(34))
End If
If s(i).Contains("A4") Then
s(i) = String.Format("A4={1}{0}{1}", "New Configuration", Chr(44))
End If
Next
Dim bFirst As Boolean = True
For Each stmp As String In s
If bFirst Then
sConfigNew = stmp
bFirst = False
Else
sConfigNew = String.Format("{0};{1}", sConfigNew, stmp)
End If
Next
regKey.SetValue("VariableGroups", sConfigNew)
regKey.Close()
Else
Console.WriteLine("No Location Number Input")
End If
Catch ex As Exception
Console.WriteLine(String.Format("RegSet Error: {0}", ex.Message))
End Try
End Sub
Sub Main()
Try
Dim line As String
line = Console.ReadLine()
If line IsNot Nothing And line.Contains("-a3") Then
Set_A3(Environment.GetCommandLineArgs(2).ToString())
line = Console.ReadLine()
If line.Contains("True") Then
Exit
End If
End If
Catch ex As Exception
End Try
End Sub
End Module
したがって、上記のコード化されたプログラムが呼び出された後、readline は '-a3' に到達する前に他のすべての入力を通過するため、そこに留まります。一方、このパラメーター '-a3 12345' を使用して cmd を介して .exe ファイルを呼び出すと、レジストリに A3 フィールドが正常に入力されます。
お役に立てれば。助けてください。提案やご意見をお寄せいただきありがとうございます。