westlife
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: [int] $PartitionNumber = 0 [string] $DriveLetter = '' foreach ( $Disk in Get-Disk ) { foreach ( $Partition in (Get-Partition -DiskNumber $Disk.number) ) { if ( $Partition.DriveLetter -like 'C' ) { $PartitionNumber = $Partition.PartitionNumber + 1 Continue } if ( $PartitionNumber ) { if ( $Partition.PartitionNumber -like $PartitionNumber ) { $DriveLetter = $Partition.DriveLetter "Буква следующего раздела за системным: $DriveLetter`:\" Break } } } if ( $PartitionNumber -and -not $DriveLetter ) { "Нет второго раздела на системном диске!" Break } } | Добавлено: Вот универсальнее, если диски разбиты по "извращенски". Код: [Boolean] $SysDisk = $false [string] $DriveLetter = '' foreach ( $Disk in Get-Disk ) { foreach ( $Partition in (Get-Partition -DiskNumber $Disk.number) ) { if ( $Partition.DriveLetter -like 'C' ) { $SysDisk = $true ; Continue } if ( $SysDisk ) { if ( $Partition.DriveLetter ) { $DriveLetter = $Partition.DriveLetter "Следующий раздел за системным, имеющий букву: $DriveLetter`:\" Break } else { Continue } } } if ( $SysDisk -and -not $DriveLetter ) { "Нет второго раздела на системном диске!" ; Break } } | Вот еще универсальнее, если диски разбиты по "супер извращенски", вариант такого разбития предложил LevT. Код: [Boolean] $SysDisk = $false [string] $DriveLetter = '' foreach ( $Disk in Get-Disk ) { foreach ( $Partition in (Get-Partition -DiskNumber $Disk.number) ) { if ( $Partition.DriveLetter -like 'C' ) { $SysDisk = $true Continue } if ( $SysDisk ) { foreach ( $SysPartition in (Get-Partition -DiskNumber $Disk.number) ) { if ( $SysPartition.DriveLetter -and $SysPartition.DriveLetter -ne 'C' ) { $DriveLetter = $SysPartition.DriveLetter "Любой другой раздел на диске, кроме системного, имеющий букву: $DriveLetter`:\" Break } else { Continue } } } } if ( $SysDisk -and -not $DriveLetter ) { "Нет второго раздела с буквой на системном диске!" Break } } | Тоже что и сверху, только без перебора дисков, на основе предложенного LevT. Чтобы LevT не серчал =) Код: $bootpartition = Get-Partition -DriveLetter 'C' $bootdisknumber = $bootpartition.DiskNumber [string] $DriveLetter = '' foreach ( $SysPartition in (Get-Partition -DiskNumber $bootdisknumber) ) { if ( $SysPartition.DriveLetter -and $SysPartition.DriveLetter -ne 'C' ) { $DriveLetter = $SysPartition.DriveLetter "Любой другой раздел на диске, кроме системного, имеющий букву: $DriveLetter`:\" Break } else { Continue } } if ( -not $DriveLetter ) { "Нет второго раздела с буквой на системном диске!" ; Break } | | Всего записей: 1390 | Зарегистр. 12-12-2006 | Отправлено: 14:19 11-02-2019 | Исправлено: westlife, 15:22 11-02-2019 |
|