循环输出结果

科林斯5286

成员
已加入
2018年11月8日
留言内容
12
编程经验
Beginner
大家好,

我是C#的新手,正在努力输出一些结果。

我有一段代码使用内置的WMI命令来检索一些系统信息。当前,它将输出写入控制台,并且工作正常(如下所示)。我想做的就是将结果输出到变量中,这样我就可以将它们写到文本文件中。我不知道该怎么做。

C#:
                //GET PHYSICAL DISK INFORMATION USING WMIC
                string PDisk = "";
                try
                {
                    ManagementObjectSearcher searcher =
                        new ManagementObjectSearcher("root\\CIMV2",
                        "SELECT * FROM Win32_DiskDrive");


                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        Console.WriteLine("-----------------------------------");
                        Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
                        Console.WriteLine("Model: {0}", queryObj["Model"]);
                        Console.WriteLine("Name: {0}", queryObj["Name"]);
                        Console.WriteLine("SerialNumber: {0}", queryObj["SerialNumber"]);
                        Console.WriteLine("Signature: {0}", queryObj["Signature"]);
                        Console.WriteLine("-----------------------------------");
                        //PDisk = ("-----------------------------------") + Environment.NewLine;
                        //PDisk = PDisk + string.Format("Manufacturer: {0}", queryObj["Manufacturer"]) + Environment.NewLine;
                        //PDisk = PDisk + string.Format("Model: {0}", queryObj["Model"]) + Environment.NewLine;
                        //PDisk = PDisk + string.Format("Name: {0}", queryObj["Name"]) + Environment.NewLine;
                        //PDisk = PDisk + string.Format("SerialNumber: {0}", queryObj["SerialNumber"]) + Environment.NewLine;
                        //PDisk = PDisk + string.Format("Signature: {0}", queryObj["Signature"]) + Environment.NewLine;
                        //PDisk = PDisk = ("-----------------------------------");
                    }
                }
                catch (ManagementException ze)
                {
                    MessageBox.Show("An error occurred while querying for WMI data: " + ze.Message);
                }

这是控制台中的输出。我希望将其放入变量中,以便稍后在代码中使用这些信息。

-----------------------------------
制造商:(标准磁盘驱动器)
型号:Intel Raid 0 Volume
名称:\\。\ PHYSICALDRIVE1
序列号:Volume1
签名:
-----------------------------------
-----------------------------------
制造商:(标准磁盘驱动器)
型号:东芝MQ01ABD100
名称:\\。\ PHYSICALDRIVE0
序列号:Y38CCU4WT
签名:95910472
-----------------------------------
-----------------------------------
制造商:(标准磁盘驱动器)
型号:USB2.0
名称:\\。\ PHYSICALDRIVE2
序列号:92070034F0274626239
签名:1465625
-----------------------------------

我尝试将每一行信息写入一个变量,但是因为有多个磁盘,所以它根本不起作用。

谢谢
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
您不需要变量。只需创建一个StreamWriter,然后调用其WriteLine方法而不是Console.WriteLine:
                using (var writer = new StreamWriter(filePath))
                {
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        writer.WriteLine("-----------------------------------");
                        writer.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
                        writer.WriteLine("Model: {0}", queryObj["Model"]);
                        writer.WriteLine("Name: {0}", queryObj["Name"]);
                        writer.WriteLine("SerialNumber: {0}", queryObj["SerialNumber"]);
                        writer.WriteLine("Signature: {0}", queryObj["Signature"]);
                        writer.WriteLine("-----------------------------------");
                    }
                }
 
Last edited:

科林斯5286

成员
已加入
2018年11月8日
留言内容
12
编程经验
Beginner
解决了

您不需要变量。只需创建一个StreamWriter,然后调用其WriteLine方法而不是Console.WriteLine:
                using (var writer = new StreamWriter(filePath)
                {
                    foreach (ManagementObject queryObj in searcher.Get())
                    {
                        writer.WriteLine("-----------------------------------");
                        writer.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]);
                        writer.WriteLine("Model: {0}", queryObj["Model"]);
                        writer.WriteLine("Name: {0}", queryObj["Name"]);
                        writer.WriteLine("SerialNumber: {0}", queryObj["SerialNumber"]);
                        writer.WriteLine("Signature: {0}", queryObj["Signature"]);
                        writer.WriteLine("-----------------------------------");
                    }
                }


非常感谢-工作了。
 
最佳 底部