从我的 VB.NET 应用程序中在命令提示符下执行命令列表

Posted

技术标签:

【中文标题】从我的 VB.NET 应用程序中在命令提示符下执行命令列表【英文标题】:Executing a list of commands on command prompt from within my VB.NET Application 【发布时间】:2014-02-25 12:00:36 【问题描述】:

我正在尝试从我正在开发的应用程序中实现以下目标。

单击按钮时,会在特定位置创建一个文件夹,(在 GUI 中设置。)我需要隐藏此文件夹,这样即使用户单击“查看隐藏项目”选项,它们也不会被隐藏可以看到这个文件夹。我试过这样做:

            Dim di As DirectoryInfo

        di = Directory.CreateDirectory(path) 'path is a variable with the location

        di.Attributes = FileAttributes.System
        di.Attributes = FileAttributes.Hidden

但这不起作用。作为替代方案,我使用应用程序创建了文件夹,并在 cmd 提示符下执行了以下代码:

attrib +s +h D:\Documents\FolderName

这有效,即即使选中查看隐藏项目,它也会隐藏文件夹。

我想知道的是,当单击创建文件夹按钮时,如何从我的应用程序中打开 cmd 提示符,并在命令提示符下执行此代码?我尝试使用

process.start("cmd.exe", "attrib +s +h D:\Documents\FolderName")

但这不起作用。它只是打开 cmd 提示符,并将目录设置为我的应用程序调试文件夹。

我的问题是,如何在我的 VB.NET 应用程序中执行命令行语句,并在执行语句后关闭 cmd 提示符?我想在我的解决方案中添加一个新的“控制台应用程序”项目,但我没有使用它的经验。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

您分配了两次属性,首先分配系统属性,然后将系统属性替换为隐藏属性。请记住,该属性会替换现有属性,而不是添加或删除,因此请正确使用它。 此外,CMD 需要一个开关 (/C | /K) 来指定命令参数。 【参考方案1】:

你不需要执行attrib(顺便说一句,可以依靠Process类来完成),只需要使用Attributes属性即可。示例代码:

Dim di As DirectoryInfo = New DirectoryInfo(Path)
di.Create()
di.Attributes = FileAttributes.System Or FileAttributes.Hidden

【讨论】:

以上是关于从我的 VB.NET 应用程序中在命令提示符下执行命令列表的主要内容,如果未能解决你的问题,请参考以下文章

VB.Net OLEDB ExecuteNonQuery INSERT INTO - 对数据库没有影响

我的批处理文件不断循环,但为啥?

如何使用 VB.net 获取 Windows 控制台应用程序的文本?

在 vb.net 中获取可执行文件的路径?

在 C# 中向 cmd 提示符发送命令

将字符串从 vb.net 传递到 cmd