首页 > 编程语言 >C#使用命令行打开diskpart修改盘符

C#使用命令行打开diskpart修改盘符

时间:2023-02-03 13:22:52浏览次数:62  
标签:C# 盘符 System vol myProcess diskpart select

参考链接:

https://www.cnblogs.com/k98091518/p/6019296.html 

https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/diskpart

diskpart修改盘符

 

开机运行一批处理.内容如下:
diskpart /s c:\disk.txt

c:\disk.txt内容如下:#注释无效可以使用 rem

select disk 1            #1选择第二个硬盘 0选择第二个硬盘
select partition 1      #选择分区1

remove all               #删除原来分区的盘符 以免分配盘符的时候冲突
select partition 3      #选择分区3
assign letter=h        #设置盘符是h
remove all               #删除原来分区的盘符
select partition 4      #选择分区4
assign letter=g        #设置盘符是g
exit                        #退出diskpart

 

 1 using System;
 2 using System.Collections.Generic;
 3 using System.IO;
 4 using System.Linq;
 5 using System.Text;
 6 using System.Threading.Tasks;
 7 
 8 namespace ConsoleApp2
 9 {
10     class Program
11     {
12         static void Main(string[] args)
13         {
14             DriveInfo[] allDrives = DriveInfo.GetDrives();
15             var drive = allDrives?.Where(r => r.DriveType == DriveType.Fixed && r.Name.ToUpper().StartsWith("Z"))?.FirstOrDefault();
16             //判断是否有Z盘,没有Z盘执行命令
17             if (drive == null)
18             {
19                 CommandLine(@"diskpart /s c:\disk.txt");
20             }
21 
22             Console.WriteLine("盘符修改成功");
23             Console.ReadKey();
24 
25         }
26 
27         static void CommandLine(string cmdStr)
28         {
29             System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
30             myProcess.StartInfo.FileName = "cmd.exe";//启动cmd命令
31             myProcess.StartInfo.UseShellExecute = false;//是否使用系统外壳程序启动进程
32             myProcess.StartInfo.RedirectStandardInput = true;//是否从流中读取
33             myProcess.StartInfo.RedirectStandardOutput = true;//是否写入流
34             myProcess.StartInfo.RedirectStandardError = true;//是否将错误信息写入流
35             myProcess.StartInfo.CreateNoWindow = true;//是否在新窗口中启动进程
36             myProcess.Start();//启动进程
37             myProcess.StandardInput.WriteLine(cmdStr);//执行计算机命令
38         }
39     }
40 }
View Code

disk.txt内容如下

list vol
select vol 3
assign letter=Z
select vol 2
remove
select vol 1
assign letter=D

list vol #查看所有卷
select vol 3 #选择第四个卷
assign letter=Z #把该卷改为Z盘
select vol 2 #选择第三个卷
remove #删除该卷
select vol 1 #选择第二个卷
assign letter=D #把该卷名称改为D盘

运行cmd命令输入:diskpart 回车如下图所示

 

标签:C#,盘符,System,vol,myProcess,diskpart,select
From: https://www.cnblogs.com/hudean/p/17088894.html

相关文章

  • .NET、C#和ASP.NET三者之间的区别
      .NET、C#和ASP.NET三者之间的区别如下:一、什么是.NET?.NET是微软公司下的一个开发平台,.NET核心就是.NETFramwork(.NET框架)是.NET程序开发和运行的环境,在这个平台下......
  • ifc4x3 附录E示例-LinearPlacement_2
    ifc4x3 附录E示例-LinearPlacement_2示例概述意图此场景演示了IfcLinearPlacement与IfcAxi2PlacementLinear和IfcPointByDistanceExpression的组合使用。 先决条件......
  • ArcGIS Pro三维点云数据加载
    ArcGISPro场景类似于ArcSence,支持可视化、分析和管理的真实世界对象,可以加载3D图层、2D图层和高程表面三类数据,操作十分方便,显示效率也有较大提升。为源地理分享如何在Ar......
  • Codeforces 1322 B. Count Subrectangles(贪心)
    题意:给出序列和序列矩阵是由和决定的问你可以从中截取多少个面积为显然可知的一个性质那就是当序列连续长度为,序列连续长度为,时这个部分序列形成的......
  • Codeforces 1322 A. Unusual Competitions
    题意:给出一个含有的字符串,让你可以选择一个区间进行重新排序,问一共选择的区间长度是多少可以使得字符串最后变成我们只需要从头开始遍历然后找到这种字符,并且使得和......
  • Codeforces 1316 B. String Modification
    题意:反转一个字符串,反转规则为从字符串首字母开头,长度为,反转问一个$k$时会得到一个新串,求字典序最小的新串和,如果字典序相同,则输出最小的。比赛时被卡,疯狂,其实举......
  • Codeforces 1316 D. Nash Matrix(dfs)
    题意:给出一个的棋盘和每个棋盘位置最后能走到的位置,如果一直走不停下来就是,可以停下来就是走到的最后位置,让你输出每个位置的操作字符,上下左右和,停在此位置。我们先找......
  • UCF Local Programming Contest 2012 C. Clean Up the Powers that Be(记住这个错误)
    题意:题意很简单,写起来也不难,唯一需要注意的就是格式了。我是个憨憨,因为我数组开到,然后就到遍历直接写的到,所以就数组越界一直,重写完过了找了好久才发现,以后这种低级错误......
  • CTU Open Contest 2019 B Beer Bill(模拟)
    题意:计算字符串的价格。给多个字符串,每个串占一行。字符串分两种,一种字符串名为只含有个字符,这种字符串的价格定义为。另一种字符串名为,格式是以数字开头......
  • Lucas定理证明
    描述:当为大数,为素数时,Lucas定理是用来求的值。适用领域范围:在数论中求大组合数取模。通式:为素数证明:已知为素数,将非负整数转化成进制数:由于p是素数对于,都有由二项式定......