如何在自动diskpart脚本期间选择磁盘?

问题描述 投票:0回答:1

我最近在工作中创建了一个脚本来自动化一些流程。没什么特别的,只是分区和格式化 USB 硬盘。它有效,但我希望在实施中更加安全。

这是我现在的脚本:

@echo off
DISKPART /s C:\Format.txt

然后这是我的 txt 文件中的内容:

SELECT DISK 7
CLEAN
CREATE PARTITION PRIMARY SIZE=1024
SELECT PARTITION 1
ACTIVE
FORMAT FS=FAT32 LABEL="PARAGON" QUICK
ASSIGN LETTER=P
CREATE PARTITION PRIMARY SIZE=952842
SELECT PARTITION 2
ACTIVE
FORMAT FS=NTFS LABEL="Backup" QUICK
ASSIGN LETTER=Q

它工作得很好并且做了它应该做的事情。我唯一的问题是,如果有人没有事先检查,可能在连接 USB HDD 之前使用了 USB 记忆棒,那么它就不再是磁盘 7。

我希望它做的是从“列出磁盘”命令开始,这样我就可以看到我的硬盘有哪个驱动器号,然后输入“7”,例如,按 Enter 键,它应该使用磁盘 7 执行上述代码.

这有可能吗?感谢您的帮助!

已经尝试过谷歌搜索和阅读类似问题的答案,但无法使其发挥作用。

batch-file cmd diskpart
1个回答
0
投票

您无法将某些内容“注入”到正在运行的

diskpart
中,因此您需要两个步骤:第一步获取磁盘列表,然后询问用户所需的数量,然后另一个
diskpart
“完成工作” .

您可以“即时”创建第二个

diskpart
的脚本:

@echo off
setLocal 

>list.txt echo LIST DISK
diskpart /s list.txt
set /p "userchoice=Enter disk number: "
(
echo SELECT DISK %userchoice%
echo CLEAN
echo CREATE PARTITION PRIMARY SIZE=1024
echo SELECT PARTITION 1
echo ACTIVE
echo FORMAT FS=FAT32 LABEL="PARAGON" QUICK
echo ASSIGN LETTER=P
echo CREATE PARTITION PRIMARY SIZE=952842
echo SELECT PARTITION 2
echo ACTIVE
echo FORMAT FS=NTFS LABEL="Backup" QUICK
echo ASSIGN LETTER=Q
)>format.txt
diskpart /s format.txt

(未完全测试 - 出于显而易见的原因)

© www.soinside.com 2019 - 2024. All rights reserved.