2014-10-02 57 views
0

以下是我正在運行的代碼,目前遇到問題。VB.NET創建並運行批處理文件問題

Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click 
    Dim path As String 
    Dim sb As New System.Text.StringBuilder 
    Dim sb1 As New System.Text.StringBuilder 
    Dim Project As String = txtProject.Text 
    Dim Building As String = txtBuilding.Text 

    'Get the building and project number from some form of user input. They're predefined here: 
    Building = "A1" 
    Project = "10" 

    If (folderDlg.ShowDialog() = DialogResult.OK) Then 
     path = folderDlg.SelectedPath 
     Dim root As Environment.SpecialFolder = folderDlg.RootFolder 
    Else 
     Return 
    End If 

    Me.Visible = False 

    sb.AppendLine("") 
    sb.AppendLine("_.``") 
    sb.AppendLine(Building) 
    sb.AppendLine(Project) 
    sb.AppendLine("ZOOM") 
    sb.AppendLine("e") 
    sb.AppendLine("_.qsave") 
    sb.AppendLine("_.quit") 

    IO.File.WriteAllText(path & "\TB Edit.scr", sb.ToString()) 

    sb1.AppendLine("FOR %%D IN (*.DWG) DO " & Chr(34) & "C:\Program Files\Autodesk\Acade 2013\acad.exe" & Chr(34) & " %%D /B " & Chr(34) & path & "\TB Edit.scr" & Chr(34)) 
    sb1.AppendLine("Pause") 
    sb1.AppendLine("END") 

    IO.File.WriteAllText(path & "\TB Edit.bat", sb1.ToString()) 

    Process.Start(path & "\TB Edit.bat") 

    My.Computer.FileSystem.DeleteFile(path & "\TB Edit.bat") 
    My.Computer.FileSystem.DeleteFile(path & "\TB Edit.scr") 

當批處理文件運行,這是我得到... 「增加了暫停,看看發生了什麼事情導通

C:\Users\Owner\Dropbox\CADMASTER TECH - SOUTH VALLEY\THOMAS\VB Programs\Title B 
lock Edit\Title Block Edit\bin\Release>FOR %D IN (*.DWG) DO "C:\Program Files\Au 
todesk\Acade 2013\acad.exe" %D /B "C:\Users\Owner\Desktop\TB Edit.scr" 

C:\Users\Owner\Dropbox\CADMASTER TECH - SOUTH VALLEY\THOMAS\VB Programs\Title B 
lock Edit\Title Block Edit\bin\Release>Pause 
Press any key to continue . . . 

但是,當我不刪除批處理文件程序結束,然後轉到它的位置並運行它,它運行得很好,就像它應該那樣!

現在搞了兩天左右......有什麼想法嗎?

+0

順便說一句,'Dim root As Environment.SpecialFolder = folderDlg.RootFolder'應該是'Dim root As String = folderDlg.RootFolder'。 – 2014-10-02 18:07:43

回答

0

,去它的位置

有您的線索!仔細看看你發佈的輸出。

+0

感謝您的提示。添加這個讓它工作 - >'sb1.AppendLine(「cd」path)'。史詩般的大腦放屁... – TomTom111 2014-10-02 22:36:55