Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows

Модерирует : KLASS, IFkO

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

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
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Сценарии для Windows


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru