参考链接:
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 }
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 回车如下图所示