1

我有一个 .exe 文件,它接受一个 .txt 文件作为参数。但是,我无法使用 vb.net 中的以下代码使其工作。当我使用带有文本文件的 cmd 运行 .exe 时,它​​可以工作。

Dim a As New ProcessStartInfo
a.FileName = "C:\Users\Asim Rahman\Desktop\Project Input Files\DirectStiffness.exe"
a.Arguments = "C:\Users\Asim Rahman\Desktop\Project Input Files\HW3A.txt"
a.WindowStyle = ProcessWindowStyle.Maximized
Process.Start(a)

我也尝试过以许多其他方式打开程序和文件,但我未能使其工作。任何帮助将不胜感激。谢谢!

4

2 回答 2

3

我想您的 exe 文件通过输入 args 找到您的文本文件。
但是您的文本文件的完整路径包含空格,这会将您的 args 参数破坏为多个元素。
您的程序引用的第一个参数是不完整的路径。

args[0] = "C:\users\asim" 
.....

对于 txt 文件的路径名中存在的每个空格,依此类推。

一个简单的解决方案是指定WorkingDirectory并从参数中删除完整路径

Dim a As New ProcessStartInfo
a.WorkingDirectory = "C:\Users\Asim Rahman\Desktop\Project Input Files"
a.FileName = "DirectStiffness.exe"
a.Arguments = "HW3A.txt"
a.WindowStyle = ProcessWindowStyle.Maximized
Process.Start(a)
于 2013-10-15T07:47:48.950 回答
1

问题可能是您需要引用作为参数传递的文件名,因为它包含空格。如果不使用双引号括起来,您的应用程序将分别获取以下参数:

C:\Users\Asim
Rahman\Desktop\Project
Input
Files\HW3A.txt

尝试这个:

C#版本

a.Arguments = @"\"C:\Users\Asim Rahman\Desktop\Project Input Files\HW3A.txt\"";

VB版

a.Arguments = """C:\Users\Asim Rahman\Desktop\Project Input Files\HW3A.txt"""
于 2013-10-15T07:45:47.617 回答