我的脚本有问题。我检查固件类型,然后根据该格式格式化硬盘驱动器。问题是运行命令时出现错误
New-Partition -DiskNumber 0 -GptType '{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}' $partsize_param -DriveLetter C
它说
找不到接受参数'-UseMaxiumSize'的位置参数 + categoryinfo:无效参数:(:) [New-Partition],ParameterBindingException +完全错误:PositionalParameterNotFound,新分区
有趣的是,如果我使用的-UseMaximumSize
不是$partsize_param
有人可以指出我正在犯什么错误吗?
function clean_install_hdd () {
Switch (Get-BiosType) {
1 {$firmwaremode='Legacy BIOS'}
2 {$firmwaremode='UEFI Mode'}
Default {$firmwaremode='Unknown'}
}
Get-Disk
$PartitionSize = Read-Host "Partition size - How many GB or max to use all available space"
if ("$PartitionSize" -eq "max") {
$partsize_param = '-UseMaximumSize'
} else {
$partsize_param = '-Size ' + $PartitionSize
}
if ("$firmwaremode" -eq "Legacy BIOS") {
Clear-Disk 0 -RemoveData -RemoveOEM -Confirm:$false; Initialize-Disk 0 -PartitionStyle MBR -Confirm:$false
New-Partition -DiskNumber 0 -$partsize_param -DriveLetter C -IsActive | Format-Volume -FileSystem NTFS -NewFileSystemLabel Windows -ShortFileNameSupport $False -Confirm:$false
}
if ("$firmwaremode" -eq "UEFI Mode") {
Clear-Disk 0 -RemoveData -RemoveOEM -Confirm:$false; Initialize-Disk 0 -PartitionStyle GPT -Confirm:$false
$systemPart = New-Partition -DiskNumber 0 -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}' -Size 100MB -DriveLetter S
& format.com "$($systemPart.DriveLetter):" /FS:FAT32 /Q /Y | Out-Null
New-Partition -DiskNumber 0 -GptType '{e3c9e316-0b5c-4db8-817d-f92df00215ae}' -Size 128MB
Write-Host $partsize_param
New-Partition -DiskNumber 0 -GptType '{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}' $partsize_param -DriveLetter C | Format-Volume -FileSystem NTFS -NewFileSystemLabel Windows -ShortFileNameSupport $False -Confirm:$false
}
}
您不能(轻松地)使用变量作为参数名称。这是使用可变展开的好情况。这使您可以轻松地在哈希表中构建动态的参数集。
function clean_install_hdd () {
Switch (Get-BiosType) {
1 {$firmwaremode='Legacy BIOS'}
2 {$firmwaremode='UEFI Mode'}
Default {$firmwaremode='Unknown'}
}
Get-Disk
$PartitionSize = Read-Host "Partition size - How many GB or max to use all available space"
$Params = @{
DiskNumber = 0
DriveLetter = "C"
};
if ($PartitionSize -eq "max") {
$Params.Add("UseMaximumSize",$true);
} else {
$Params.Add("Size", $PartitionSize);
}
if ("$firmwaremode" -eq "Legacy BIOS") {
Clear-Disk 0 -RemoveData -RemoveOEM -Confirm:$false; Initialize-Disk 0 -PartitionStyle MBR -Confirm:$false;
$Params.Add("IsActive",$true);
New-Partition @Params | Format-Volume -FileSystem NTFS -NewFileSystemLabel Windows -ShortFileNameSupport $False -Confirm:$false
}
if ("$firmwaremode" -eq "UEFI Mode") {
Clear-Disk 0 -RemoveData -RemoveOEM -Confirm:$false; Initialize-Disk 0 -PartitionStyle GPT -Confirm:$false
$systemPart = New-Partition -DiskNumber 0 -GptType '{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}' -Size 100MB -DriveLetter S
& format.com "$($systemPart.DriveLetter):" /FS:FAT32 /Q /Y | Out-Null
New-Partition -DiskNumber 0 -GptType '{e3c9e316-0b5c-4db8-817d-f92df00215ae}' -Size 128MB
Write-Host $partsize_param
$Params.Add("GptType","{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}");
New-Partition @Params | Format-Volume -FileSystem NTFS -NewFileSystemLabel Windows -ShortFileNameSupport $False -Confirm:$false
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句