这真的很容易,但是当我查看其他人的答案时,我想“为什么要以简单的方式去做,而你却可以以艰难的方式去做”:D
好的, diskpart是终端应用程序,这意味着它有自己的 CLI (命令行界面)。这意味着,如果您想将命令写入磁盘部分,则必须将其作为标准输入写入磁盘部分自己的 CLI(输入为st和d)。这就是为什么您不能通过批处理文件写入命令的原因,因为您的 diskpart 命令在 diskpart 退出后作为 cmd.exe 的下一个命令运行。
现在我们只需要对diskpart“撒谎”并将stdin模拟到他的CLI。
我们可以这样实现:
(echo Rescan
echo List Disk
echo Select Disk 3
echo List Partition
echo Select Partition 3
echo Delete Partition Override
) | diskpart
pause
因此,上面的代码执行以下操作:
echo 命令将生成标准输出(st andard输出)。通常我们的命令行解释器 cmd.exe 只会在屏幕上打印出这个标准输出。(您可以通过在 cmd.exe中仅运行带括号的 echo 命令来尝试)
然后,使用管道|
我们将这些 echo 命令的标准输出重定向到 diskpart 应用程序。因此,来自 echo 的标准输出现在将充当 diskpart 应用程序的标准输入。
因此,您运行 diskpart,diskpart 从 echo 获取输入,就像它从键盘获取输入一样,当然它可以工作!
就是这样,简单易行的解决方案!