寻求用于多磁盘格式化的PowerShell脚本
多磁盘批量格式化PowerShell脚本
以下是一款可批量处理多磁盘格式化的PowerShell脚本,支持自定义文件系统、盘符分配与卷标设置,同时加入安全确认机制避免误操作:
<# .SYNOPSIS 批量格式化指定磁盘,支持自定义文件系统、盘符与卷标 #> param( [Parameter(Mandatory=$true)] [int[]]$DiskIds, [Parameter(Mandatory=$false)] [ValidateSet("NTFS","ReFS","FAT32","exFAT")] [string]$FileSystem = "NTFS", [Parameter(Mandatory=$false)] [char[]]$DriveLetter, [Parameter(Mandatory=$false)] [string[]]$VolumeLabel, [Parameter(Mandatory=$false)] [switch]$Force ) # 检查是否以管理员身份运行 $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) if (-not $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Error "请以管理员身份运行此脚本" exit 1 } # 遍历指定磁盘ID for ($i=0; $i -lt $DiskIds.Count; $i++) { $diskId = $DiskIds[$i] $disk = Get-Disk -Number $diskId -ErrorAction SilentlyContinue if (-not $disk) { Write-Warning "未找到ID为$diskId的磁盘,跳过" continue } # 安全确认:除非使用-Force,否则提示用户确认 if (-not $Force) { $confirm = Read-Host "确认要格式化磁盘$diskId(型号:$($disk.Model),容量:$([math]::Round($disk.Size/1GB,2))GB)吗?输入Y确认,其他键跳过" if ($confirm -ne "Y" -and $confirm -ne "y") { Write-Host "已跳过磁盘$diskId的格式化" continue } } try { # 初始化磁盘(清除现有分区) Clear-Disk -Number $diskId -RemoveData -RemoveOEM -Confirm:$false -ErrorAction Stop # 创建分区 $partitionParams = @{ DiskNumber = $diskId UseMaximumSize = $true AssignDriveLetter = $true } if ($DriveLetter -and $DriveLetter[$i]) { $partitionParams["DriveLetter"] = $DriveLetter[$i] } New-Partition @partitionParams -ErrorAction Stop | # 格式化分区 Format-Volume -FileSystem $FileSystem -NewFileSystemLabel ($VolumeLabel[$i] ?? "Disk$diskId") -Confirm:$false -ErrorAction Stop Write-Host "磁盘$diskId格式化完成,文件系统:$FileSystem,盘符:$($partitionParams.DriveLetter ?? '自动分配'),卷标:$($VolumeLabel[$i] ?? "Disk$diskId")" -ForegroundColor Green } catch { Write-Error "磁盘$diskId格式化失败:$_" } }
使用说明
- 获取磁盘ID:先运行
Get-Disk命令查看系统中所有磁盘的ID、型号与容量,确认要格式化的磁盘ID - 基础使用示例:
# 格式化磁盘2和3,使用默认NTFS,自动分配盘符,卷标为Disk2、Disk3 .\Format-MultipleDisks.ps1 -DiskIds 2,3 - 自定义参数示例:
# 格式化磁盘1和4,指定NTFS文件系统,分配盘符D、E,卷标分别为"DataDisk"和"BackupDisk" .\Format-MultipleDisks.ps1 -DiskIds 1,4 -FileSystem NTFS -DriveLetter D,E -VolumeLabel "DataDisk","BackupDisk" - 强制模式(无确认):
# 跳过确认提示,直接格式化磁盘5,适合自动化场景(谨慎使用) .\Format-MultipleDisks.ps1 -DiskIds 5 -Force
注意事项
- 必须以管理员身份运行PowerShell才能执行磁盘格式化操作
- 格式化会清除磁盘上的所有数据,请务必提前备份重要文件
- 请勿误填系统磁盘ID(通常ID为0),否则会导致系统无法启动
- 如果指定的盘符已被占用,脚本会自动分配其他可用盘符
内容的提问来源于stack exchange,提问作者Surya Kiran Dangeti
相关产品推荐
相关产品推荐

