私はプログラミングに非常に慣れていないので、事前にお詫び申し上げます。
そのため、Robocopy を使用してファイルを簡単にコピーし、最終的には他のタスクを作成する Win アプリを作成しようとしています。基本的に、これまでのところ、Sub Robcopy_EXE を呼び出すボタンがあります。フォームには、ユーザーが指定する 100 個のチェック ボックス (端末ごとに 1 つずつ) を備えたタブと、Robocopy からの詳細なレポートが必要かどうかを決定するチェック ボックスがあります。ユーザーがサイトの IP アドレスの最初の 3 オクテットを入力するためのテキスト ボックスもあります。チェックボックスと入力フィールドは、CMD で Robocopy を実行する文字列「Terminal_input」を作成するために使用されます。Robocopy は、「Status.txt」というラベルを付けたテキスト ファイルに進行状況を記録します。それは私が得た限りです。
現時点では、次のターミナルに進むために、現在実行中の更新がいつ完了したかを知る必要があります。「Status.txt」ファイルを継続的に読み取り、「ENDED」という単語を探して次のターミナルに進むようにしています。「ENDED」という単語が存在しない場合、LABEL3を「更新中の端末」に更新したい
最終的には、checkbox# を、各チェックボックス# を進むにつれて増加する変数にする方法が必要ですが、1 つのターミナルが完了するかどうかを確認する方法を見つけた後、それを台無しにします。
私が言ったように、私はプログラミングが初めてで、これを理解するのをとても楽しんでいますが、この手順に非常に困惑しており、可能な限り最悪の方法で行っています:D
ありがとうございます。
Private Sub RoboCopy_EXE()
Dim Robocopystart = "Robocopy C:\wtg\update \\"
Dim Robocopymid = IP_Input.Text
Dim Robocopyend = ".42\c$\wtg /E /copy:datsou /r:3 /w:20 /log+:status.txt /tee /ns /nc /nfl /"
Dim Terminal_Input = Robocopystart + Robocopymid + Robocopyend
If CheckBox10.Checked Then
If RoboCopy_Detailed_Progress.Checked = True Then
Shell("CMD.exe", vbNormalFocus)
Threading.Thread.Sleep(400)
SendKeys.SendWait(Terminal_Input)
Label3.Text = items
Else : RoboCopy_Detailed_Progress.Checked = False
Shell("CMD.exe", vbNormalFocus)
Threading.Thread.Sleep(500)
SendKeys.Send("Test2")
End If
End If
End Sub