2016-01-05 2 views
0

Я пытался воссоздать исходный код для запуска в игру, которую я создал, для которой требуется создание и запуск .bat. Когда пришло время обернуть добавленные строки в .bat, я нашел эту ошибку. Я исследовал, полностью даже. Причина, по которой я спрашиваю себя, заключается в том, что ни один из ответов, которые я встречал, не соответствовал моему делу. Партия задает переменные, перекликается с текстом, а затем запускает игру. Вот код, спасибо, что помогли мне. Я добавлю дополнительную информацию, если вам это нужно, я буду как можно более полезен.«Ошибка при перегрузке из-за отсутствия доступа« Новый »принимает это количество аргументов» при попытке написать текст строкового текста в пакетном файле

sb.AppendLine("@echo off") 
    sb.AppendLine("set ttiUsername=" + username) 
    sb.AppendLine("set ttiPassword=password") 
    sb.AppendLine("set TTI_GAMESERVER=10.0.0.77") 
    sb.AppendLine("set TTI_PORT=7198") 
    sb.AppendLine("set /P PPYTHON_PATH=<PPYTHON_PATH") 
    sb.AppendLine("echo ===============================") 
    sb.AppendLine("echo Welcome to Toontown Rebuilt, %ttiUsername%!") 
    sb.AppendLine("echo You are connecting to server %TTI_GAMESERVER%!") 
    sb.AppendLine("echo The server port is %TTI_PORT%") 
    sb.AppendLine("echo ===============================") 
    sb.AppendLine("%PPYTHON_PATH% -m toontown.toonbase.ToontownStart") 
    Dim File As New System.IO.StreamWriter 
    File.WriteLine(sb.ToString()) 
    Process.Start("C:\Toontown Rebuilt Source\ToontownRebuilt\Launcher.bat") 
+0

Где вы пишете строку? :-) – Steve

+0

В stringbuilder с добавлением? – lolman8776

+0

Не игнорируйте справку и подсказку, которые предлагает Intellisense по мере ввода; просмотр его в браузере объектов также может помочь. Особенно с таким явным сообщением об ошибке – Plutonix

ответ

3

System.IO.StreamWriter конструктор требует параметров. Имя файла или уже созданного потока, где последующий Write сбрасывает содержимое вашей строки. Вам не хватает этого параметра.
Но есть и другие проблемы, которые необходимо изменить здесь

Using File = New System.IO.StreamWriter("C:\Toontown Rebuilt Source\ToontownRebuilt\Launcher.bat") 
    File.WriteLine(sb.ToString()) 
End Using 

Капсула в Использование заявлении обеспечивает надлежащее закрытие и удаления потока

Другой полезный подход File.WriteAllText

Dim file = "C:\Toontown Rebuilt Source\ToontownRebuilt\Launcher.bat" 
File.WriteAllText(file, sb.ToString()) 
+0

Спасибо, что сработало! Через 4 минуты (вы слишком затянуты!) Я могу это принять. – lolman8776

1

Привет, я использую ваш код и исправляю вашу ошибку для летучей мыши.

Это мой код в VB.NET:

 Dim sb As New StringBuilder 
     Dim username As String 

     username = "test" 

     sb.AppendLine("@echo off") 
     sb.AppendLine("set ttiUsername=" + username) 
     sb.AppendLine("set ttiPassword=password") 
     sb.AppendLine("set TTI_GAMESERVER=10.0.0.77") 
     sb.AppendLine("set TTI_PORT=7198") 
     sb.AppendLine("set /P PPYTHON_PATH=<PPYTHON_PATH") 
     sb.AppendLine("echo ===============================") 
     sb.AppendLine("echo Welcome to Toontown Rebuilt, %ttiUsername%!") 
     sb.AppendLine("echo You are connecting to server %TTI_GAMESERVER%!") 
     sb.AppendLine("echo The server port is %TTI_PORT%") 
     sb.AppendLine("echo ===============================") 
     sb.AppendLine("%PPYTHON_PATH% -m toontown.toonbase.ToontownStart") 
     Dim file As System.IO.StreamWriter 
     file = My.Computer.FileSystem.OpenTextFileWriter("C:\tmp\Launcher.bat", True) 
     file.WriteLine(sb.ToString) 
     file.Close() 
     Process.Start("C:\tmp\Launcher.bat")