我想自动执行创建 EFI 分区的脚本。
目前,有一个步骤是手动的,需要启动 DISKPART 并执行以下命令:
create partition efi size=100
format fs=fat32 quick label=SYSTEM
assign letter=S
如何使用 PowerShell 获得相同的结果?我没有在 New-Partition cmdlet 中看到任何用于创建 EFI 分区的选项。
答案1
我怀疑这相当于电源外壳:
New-Partition -DiskNumber 0 -Size 100MB -GptType "{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}" -DriveLetter "S"
Format-Volume -FileSystem FAT32 -NewFileSystemLabel "SYSTEM" -DriveLetter "S" -Force
适当修改以适合您的使用情况。
答案2
请注意,您需要先选择一个磁盘,然后才能创建分区。
阅读diskpart /?
、使用:
Microsoft DiskPart syntax: diskpart [/s <script>] [/?] /s <script> - Use a DiskPart script. /? - Show this help screen.
注意DiskPart 脚本是一个简单的纯文本文件,其中包含 diskpart 命令(每行一个命令),例如MyDiskpart.txt
下面所列。
diskpart /s MyDiskpart.txt
回答:后一个命令您可以从提升的 powershell
会话以及提升的 cmd
会话(˙diskpart˙ 始终需要提升)运行。
附录:
此外,还Diskpart
接受来自管道('|')以及<
重定向因此以下cmd
命令是等效的:
diskpart /s MyDiskpart.txt
diskpart<MyDiskpart.txt
type MyDiskpart.txt|diskpart
后者使用以下命令进行测试diskpart 脚本:
==> type MyDiskpart.txt
list disk
list volume
select disk 1
list partition
此外,你不需要创建diskpart 脚本文件;以下.bat
脚本显示系统卷详细信息(选择体积 #动态):
@ECHO OFF
SETLOCAL EnableExtensions
:check_permissions
echo Administrative permissions required. Detecting permissions...
net session >nul 2>&1
if %errorLevel% == 0 (
echo Success: Administrative permissions confirmed.
) else (
echo Failure: Current permissions inadequate.
goto :endlocal
)
:do_the_job
for /f "tokens=2" %%a in ('echo list volume ^| diskpart ^| findstr System') do (
(
echo select volume %%a
echo detail volume
) | diskpart
)
echo DONE
:endlocal
pause