CMD и пакетная помощь vb.net - PullRequest
0 голосов
/ 14 июля 2011

Я пытаюсь запустить этот код, который обычно запускается из командного файла

Код пакетного файла:

    @ECHO OFF
SET BINDIR=%~dp0
CD /D "%BINDIR%"
"%ProgramFiles%\Java\jre6\bin\java.exe" -Xincgc -Xmx1G -jar craftbukkit-0.0.1-SNAPSHOT.jar
PAUSE

Код Vb.net:

If cmbserverapplication.Text = "Bukkit Server" Then
            If System.IO.File.Exists(root + "\craftbukkit-0.0.1-SNAPSHOT.jar") = True Then
                If Environment.Is64BitOperatingSystem = True Then
                    bit = "64"
                Else
                    bit = "32"
                End If
                serverpath = "craftbukkit-0.0.1-SNAPSHOT.jar"
                Dim javapath As String
                If bit = 64 Then
                    If System.IO.File.Exists("C:\Program Files (x86)\Java\jre7\bin\java.exe") = True Then
                        javapath = "path = C:\Program Files (x86)\Java\jre7\bin\java"
                    Else
                        javapath = "path = C:\Program Files (x86)\Java\jre6\bin\java"
                    End If
                Else
                    If System.IO.File.Exists("C:\Program Files\Java\jre7\bin\java.exe") = True Then
                        javapath = "path = C:\Program Files\Java\jre7\bin\java"
                    Else
                        javapath = "path = C:\Program Files\Java\jre6\bin\java"
                    End If
                End If
                Dim pi As New ProcessStartInfo("Cmd.exe")
                pi.Arguments = "@ECHO OFF"
                pi.Arguments = "SET BINDIR=%~dp"
                pi.Arguments = "CD /D ""%BINDIR%"""
                pi.Arguments = """" + javapath + ".exe" + """" + " -Xincgc -Xmx1G -jar craftbukkit-0.0.1-SNAPSHOT.jar"
                pi.Arguments = "Pause"

                Process.Start(pi)

                Me.Close()

            Else
                MsgBox("The server file does not exist. Please make sure that you have select the right file type and that it has not been renamed.")
            End If

        End If
    End If

Когда я запускаю код, cmd.exe открывается, но тогда ничего не происходит

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Три вопроса:

  1. Ваш Java-путь начинается с термина «путь =», что приводит к путанице в командной строке.Удалите это.

  2. Командная строка может выполнять только одну команду.Повторно устанавливая pi.Arguments, вы каждый раз заменяете команду.Единственная выполняемая команда: PAUSE.

  3. Ваша командная строка для CMD полностью отсутствует.Это должно выглядеть примерно так:

    Cmd.exe /c BatchFile.bat
    

Если вы действительно хотите выполнить несколько команд, вы можете использовать && между каждой строкой.

Попробуйте это.При необходимости измените WorkingDirectory.Я намеренно оставил пробел в команде SET BINDIR, чтобы предотвратить появление дополнительного пробела в пути.Другими словами, я оставил его там для удобства чтения.

Dim pi As New ProcessStartInfo("Cmd.exe")
pi.WorkingDirectory = "C:\Location of Batch file"
pi.Arguments = "/c " & _
    "@ECHO OFF && " & _
    "SET BINDIR=%CD%&& " & _
    """" & JavaPath & """ -Xincgc -Xmx1G -jar craftbukkit-0.0.1-SNAPSHOT.jar && " & _
    "PAUSE"
Process.Start(pi)
1 голос
/ 14 июля 2011

Вот пример запуска файлов bat с веб-страницы. Должны иметь примеры кода запуска командного файла с C #. Должно быть легко конвертировать в VB.

http://labs.ratchet.com/566/running-command-line-bat-files-from-web-page-asp-net-c/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...