You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求用于多磁盘格式化的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格式化失败:$_"
    }
}

使用说明

  1. 获取磁盘ID:先运行Get-Disk命令查看系统中所有磁盘的ID、型号与容量,确认要格式化的磁盘ID
  2. 基础使用示例:
    # 格式化磁盘2和3,使用默认NTFS,自动分配盘符,卷标为Disk2、Disk3
    .\Format-MultipleDisks.ps1 -DiskIds 2,3
    
  3. 自定义参数示例:
    # 格式化磁盘1和4,指定NTFS文件系统,分配盘符D、E,卷标分别为"DataDisk"和"BackupDisk"
    .\Format-MultipleDisks.ps1 -DiskIds 1,4 -FileSystem NTFS -DriveLetter D,E -VolumeLabel "DataDisk","BackupDisk"
    
  4. 强制模式(无确认):
    # 跳过确认提示,直接格式化磁盘5,适合自动化场景(谨慎使用)
    .\Format-MultipleDisks.ps1 -DiskIds 5 -Force
    

注意事项

  • 必须以管理员身份运行PowerShell才能执行磁盘格式化操作
  • 格式化会清除磁盘上的所有数据,请务必提前备份重要文件
  • 请勿误填系统磁盘ID(通常ID为0),否则会导致系统无法启动
  • 如果指定的盘符已被占用,脚本会自动分配其他可用盘符

内容的提问来源于stack exchange,提问作者Surya Kiran Dangeti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:15:49