Board logo

标题: [问题求助] 求助PowerShell合并所有分区后面的未分配空间 [打印本页]

作者: 小白龙    时间: 2024-9-6 20:39     标题: 求助PowerShell合并所有分区后面的未分配空间

使用下面powershell代码可以将某个分区后面的未分配空间与该分区进行合并(示例代码中是第1个硬盘的第2个分区后面有未分配空间),
但问题来了, 我想把当前电脑上所有的未分配空间都合并到其前面的分区中, 可能有多个硬盘, 那下面的代码应该怎样改呢,


$size = (Get-PartitionSupportedSize –DiskNumber 0  –PartitionNumber 5)
Resize-Partition -DiskNumber 0  –PartitionNumber 5 -Size $size.SizeMax

作者: flashercs    时间: 2024-9-6 22:04

  1. Get-Partition | ForEach-Object {
  2.   $size = $_ | Get-PartitionSupportedSize
  3.   if ($size.SizeMax -gt $size.SizeMin) {
  4.     $_ | Resize-Partition -Size $size.SizeMax -WhatIf
  5.   }
  6. }
复制代码
如果-WhatIf结果符合要求,那么去掉-WhatIf就是真正合并磁盘未分配空间.
作者: Five66    时间: 2024-9-6 22:15

不连续的能合并?动态磁盘么?
作者: 小白龙    时间: 2024-9-6 23:17

回复 2# flashercs


多谢大佬支招,
通过测试,我看-whatif 信息中有好多分区都要调整, 但实际上只有两个分区需要调整,
第1个是50G的未分配空间,它前面是一个NTFS的分区,
第2个是7个G的未分配空间, 它前面是一个Linux的分区,

因为是在windows下, 所以我认为应该只能合并第1个50G的未分配空间到它前面的分区中,
而第2个, 因为它的前面是linux分区, 所以应该合并不了,
-whatif 其它的未分配空间应该是太小的那种, 估计应该跳过,
现在的情况应该怎样改代码呢?
作者: flashercs    时间: 2024-9-7 11:04

回复 4# 小白龙
那就手动选择分区,可以多选,每个选择的分区合并为最大容量,不选择就点击取消.
  1. Get-Partition | Select-Object -Property DiskNumber, PartitionNumber, DriveLetter, Type, Offset, Size, @{
  2.   n = 'SupportSize';
  3.   e = { $_ | Get-PartitionSupportedSize }
  4. } | Out-GridView -Title '选择你要合并的分区后点确定(可多选),不选择请点取消' -OutputMode Multiple | ForEach-Object {
  5.   Resize-Partition -DiskNumber $_.DiskNumber -PartitionNumber $_.PartitionNumber -Size $_.SupportSize.SizeMax -Verbose -WhatIf
  6. }
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2