首页 > 解决方案 > 在 vb.net 中使用目录作为批处理脚本参数的正确方法

问题描述

我正在尝试将目录作为参数传递给 vb.net 中的批处理脚本。下面是按钮的操作。使用目录名称作为参数(或在这种情况下是两个目录名称)的正确方法是什么?目前,我对测试目录进行了硬编码以尝试调试,但结果不如预期。而不是使用目录作为输入,它似乎忽略了它。这似乎是一个字符串问题或类似的东西。请原谅我糟糕的代码;我对vb还处于起步阶段。

.bat 文件采用两个参数(第一个是输入文件夹,第二个是输出文件夹/位置),然后启动对输入文件夹中每个数据集的分析。我最终将接受由浏览按钮定义的用户输入,并将其用作输入/输出位置。.bat 文件通过以下方式在 cmd 和 powershell 中完美运行:

.\Scripts\census_splitter.bat C:\Users\Foo\Documents\Census_Splitter\Data\ C:\Users\Foo\Documents\Census_Splitter\Output\

将其移至 vb.net 时似乎会出现问题。

Private Sub RunButton_Click(sender As Object, e As EventArgs) Handles RunButton.Click
        'Declare Variables'
        Dim census_splitter As String = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "Census_Splitter\Scripts\census_splitter.bat")
            
        'Batch Script'
        Dim p As New Process
        Process.Start(census_splitter).WaitForExit()
        Cursor.Current = Cursors.WaitCursor
        Application.DoEvents()
        p.StartInfo.FileName = census_splitter
        p.StartInfo.Arguments = "C:\Users\Foo\Documents\Census_Splitter\Data\" & " " & "C:\Users\Foo\Documents\Census_Splitter\Output\"
        p.StartInfo.CreateNoWindow = True
        p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
        p.Start()
        p.WaitForExit()
        Cursor.Current = Cursors.Default



    End Sub

任何想法都会有所帮助。谢谢。

标签: vb.netbatch-file

解决方案


推荐阅读