Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 使批处理文件在继续之前完成其操作?_Vb.net_Visual Studio 2010 - Fatal编程技术网

Vb.net 使批处理文件在继续之前完成其操作?

Vb.net 使批处理文件在继续之前完成其操作?,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,下面的代码将从SourceDirectory中提取今天修改过的文件,并将它们放在FilesExtracted文件夹中,然后批处理文件将删除SourceDirectory中的其余文件。但在这一切完成后,一组全新的文件将从OriginalTestFiles文件夹复制并放入sourceDirectory,但它不能做到这一点。是否有人认为这可能是因为批处理文件尚未停止其操作,并且仍在删除sourceDirectory中的文件,或者是否存在其他问题。谢谢大家! Imports System.IO Pub

下面的代码将从SourceDirectory中提取今天修改过的文件,并将它们放在FilesExtracted文件夹中,然后批处理文件将删除SourceDirectory中的其余文件。但在这一切完成后,一组全新的文件将从OriginalTestFiles文件夹复制并放入sourceDirectory,但它不能做到这一点。是否有人认为这可能是因为批处理文件尚未停止其操作,并且仍在删除sourceDirectory中的文件,或者是否存在其他问题。谢谢大家!

Imports System.IO

Public Class frmExtractionator

'  Dim txtFiles1 As Control
Dim sourceDirectory As String = "F:\CopierFolderforTestDriveCapstone"
Dim archiveDirectory As String = "F:\FilesExtracted"
Dim originalDirectory As String = "F:\OriginalTestFiles"

Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click

    Try

        Dim txtFiles = Directory.EnumerateFiles(sourceDirectory)

        If (Not System.IO.Directory.Exists(archiveDirectory)) Then
            System.IO.Directory.CreateDirectory(archiveDirectory)
        End If


        For Each currentFileLoc As String In txtFiles

            Dim fileName = currentFileLoc.Substring(sourceDirectory.Length + 1)



            If (IO.File.GetLastWriteTime(currentFileLoc).ToString("MM/dd/yyyy") = DateTime.Now.ToString("MM/dd/yyyy")) Then
                MessageBox.Show(currentFileLoc & " moved", "Moved Succesfully")
                File.Move(currentFileLoc, Path.Combine(archiveDirectory, fileName))

            End If

        Next
    Catch eT As Exception
        Console.WriteLine(eT.Message)
    End Try

    System.Diagnostics.Process.Start("F:\poop.bat")


    Try
        Dim txtFiles2 = Directory.EnumerateFiles(originalDirectory)

        For Each currentFileLoc2 As String In txtFiles2

            Dim fileName = currentFileLoc2.Substring(originalDirectory.Length + 1)

            File.Move(currentFileLoc2, Path.Combine(sourceDirectory, fileName))

        Next
    Catch eT As Exception
        Console.WriteLine(eT.Message)
    End Try
End Sub

End Class

启动
过程后,您可以将其作为变量,并且:


尝试监视流程的完成情况

'Start the process.
Dim Proc = Process.Start("F:\poop.bat")
'Wait for the window to finish loading.
Proc.WaitForInputIdle()
'Wait for the process to end.
Proc.WaitForExit()

...

完美的解决了我的问题。谢谢!
'Start the process.
Dim Proc = Process.Start("F:\poop.bat")
'Wait for the window to finish loading.
Proc.WaitForInputIdle()
'Wait for the process to end.
Proc.WaitForExit()

...