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