[英]How to pass input to main sub in Visual Studio console application for an exe to be run in batch mode?
我是Visual Studio中的新手。 我应该创建一个以批处理模式运行的exe文件。 exe将读取一个文本文件并输出另一个文本文件。 这两个文本文件的名称是应用程序的输入。 创建exe文件后,我将以批处理模式运行它。
批处理文件将类似于(run_exe.bat)app.exe input_file.txt output_file.txt
我的代码如下。 问题是将输入(文件名)放入main子目录。 我在行a3 = a1 + a2处收到一个奇怪的错误,因为“在microsoft.visualbasic.dll中发生了System.IO.IOexception类型的未处理异常”
我认为问题是输入fil_na1和fil_na2。 我应该把这些投入放在哪里?
我的代码如下:
模块Module1
Sub Main(ByVal fil_na1 As String, ByVal fil_na2 As String)
Dim fil_nu1 As Integer
fil_nu1 = FreeFile()
FileOpen(fil_nu1, fil_na1, OpenMode.Input, OpenAccess.Read, OpenShare.Shared)
Dim str_lin As String
Dim a1 As Integer, a2 As Integer
str_lin = FileSystem.LineInput(fil_nu1)
a1 = Val(str_lin)
str_lin = FileSystem.LineInput(fil_nu1)
a2 = Val(str_lin)
FileSystem.FileClose(fil_nu1)
Dim a3 As Integer
a3 = a1 + a2
Dim fil_nu2 As Integer
fil_nu2 = FreeFile()
FileOpen(fil_nu2, fil_na2, OpenMode.Output, OpenAccess.Write, OpenShare.Shared)
FileSystem.WriteLine(fil_nu2, a3)
FileSystem.FileClose(fil_nu2)
End Sub
终端模块
您可以使用此功能获取所有命令行。
Environment.GetCommandLineArgs()
你可以这样看
Console.WriteLine(Environment.GetCommandLineArgs().Length)
For Each commandArgument As String In Environment.GetCommandLineArgs()
Console.WriteLine(commandArgument)
Next
现在,所有有关解析数组的操作,确保您具有足够的参数并且它们有效。
另外,建议您不要使用FileOpen,而是使用System.IO命名空间的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.