【解決方法】VB.NET で引用符で囲まれた複雑な文字列構造を作成する


こんにちは、
これ以上先に進めないという問題があります。 同様の事例を数多く調査した後でも、問題の解決策を見つけることができなかったので、質問しました。
それはトピック「文字列内の文字列」または VB.NET の文字列内の引用符に関するものです。
VB.NET コードで比較的広範なコマンド ライン パラメータを使用して *.vbs を開始したいと考えています。
ターゲット コンピューターのグループ ポリシーは常に *.vbs ファイルの標準プログラムをメモ帳にリセットするため、WScript.exe を使用してファイルの実行をプログラムで「強制」する必要があります。

文字列全体 – Windows の「実行」コマンド ライン ユーティリティを使用して実行すると正常に動作します。 – 次のようになります。

“C:\Windows\SysWOW64\wscript.exe” “C:\Temp\AnyProcess.vbs” “Cmd1Par1=AnyVal1 Cmd1Par2=AnyVal2 Cmd1Par3=AnyVal3 Cmd1Par4=AnyVal4” “Cmd2Par1 Cmd2Par2” “Cmd3Par1” “Cmd4Par1”

今、VB.NETでこの「コンストラクト」をマップしてから実行しようとしても無駄です

myproc を新しいプロセスとして暗くする
start.FileName = …..
start.Arguments = …..
myproc.Start()

文字列構造の作成と.Filenameおよび.Argumentsへの割り当てに失敗しています。

(PS: VB.NET アプリケーション (.WaitForExit) 内のプロセスを制御したいので、(単純な SHELL Run ではなく) ‘Process’ クラスを使用することが重要です)

手伝ってくれてありがとう。
挨拶する

私が試したこと:

Dim xylauncher = Application.StartupPath & “\” & filename_vbs & ” “
Dim Cmd1 = “Cmd1Par1 Cmd1Par2 Cmd3Par3 Cmd1Par4”
Dim Cmd2 = “AnyString2”
Dim Cmd3 = “AnyString3”
Dim Cmd4 = “AnyString4”
xycmdline = “””” & Cmd1 & “””” & ” ” & “””” & Cmd2 & “””” & ” ” & “””” & Cmd2 & “””” & ” ” & “”” ” & Cmd4 & “”””

myproc を新しいプロセスとして暗くする
start.FileName = xylauncher
start.Arguments = xycmdline
myproc.Start()

解決策 1

元のコマンドを複製するのは簡単です:

VB
Dim cmdApp As String = """C:\Windows\SysWOW64\wscript.exe"""
Dim cmdPar As String = """C:\Temp\AnyProcess.vbs"" ""Cmd1Par1=AnyVal1 Cmd1Par2=AnyVal2 Cmd1Par3=AnyVal3 Cmd1Par4=AnyVal4"" ""Cmd2Par1 Cmd2Par2"" ""Cmd3Par1"" ""Cmd4Par1"""
Dim myproc As New Process
start.FileName = cmdApp
start.Arguments = cmsPar
myproc.Start()

そこから始めれば、何をする必要があるかが明確になるはずです。

コメント

タイトルとURLをコピーしました