Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在Visual Basic中以函数形式运行批处理脚本_Vb.net_Visual Studio_Batch File - Fatal编程技术网

Vb.net 在Visual Basic中以函数形式运行批处理脚本

Vb.net 在Visual Basic中以函数形式运行批处理脚本,vb.net,visual-studio,batch-file,Vb.net,Visual Studio,Batch File,我已经为Windows编写了几个简单的批处理脚本 我现在正在创建一个VB表单应用程序 我想能够在VB中创建一些函数,其中包含我的批处理脚本代码(批处理文件语法) 然后能够在我的VB程序中调用并运行该代码 我可以将批处理脚本放在磁盘上的某个地方,然后使用“shell”函数调用它们,但我不希望批处理脚本是实际文件 有办法做到这一点吗?或者我必须用VB语法编写批处理脚本并使用shell函数,您可以使用Process类来运行它 Process.Start({batch file}) 在我看来,你有几个

我已经为Windows编写了几个简单的批处理脚本

我现在正在创建一个VB表单应用程序

我想能够在VB中创建一些函数,其中包含我的批处理脚本代码(批处理文件语法) 然后能够在我的VB程序中调用并运行该代码

我可以将批处理脚本放在磁盘上的某个地方,然后使用“shell”函数调用它们,但我不希望批处理脚本是实际文件


有办法做到这一点吗?或者我必须用VB语法编写批处理脚本并使用shell函数,您可以使用Process类来运行它

Process.Start({batch file})

在我看来,你有几个选择:

  • 将批处理文件放在电脑上,然后通过process.start调用它
  • 批处理文件的文本嵌入到应用程序中,应用程序将依次创建文件并通过process.start运行
  • 将批处理重写到vb.net并丢失命令控制台脚本
  • 编写自己的转换器来处理批处理文件脚本,并运行适当的vb.net代码来模拟.bat/.cmd文件脚本
  • 可以调用“cmd.exe/c”并提供字符串;这可能是你特别需要的
  • 我个人更喜欢选项3,因为它允许更简单的调试/错误处理

    编辑
    添加了选项5

    是否有一种方法可以将批处理文件嵌入到程序中并从程序内部运行它,这样我就不必将批处理文件作为外部文件我最终选择了选项2并使用了:my.Computer.FileSystem.writealText方法如果不在磁盘上的批处理文件中,它们将无法执行。如果要避免使用磁盘文件,您必须自己在VB中编写相同的功能,而不使用批处理脚本语言。