在尝试删除所有分区时,我正在尝试开发一个批处理文件来运行和删除 Windows 7 中的隐藏分区。通常我会在命令提示符窗口中逐行执行此操作,但我试图弄清楚如何创建批处理文件来运行并加快此过程。
这是我在命令提示符中键入的行。
disk part
Rescan
List Disk
Select Disk 3
List Partition
Select Partition 3
Delete Partition Override
我创建了一个 BAT 文件,但只能使第一个命令起作用。
最佳答案
这真的很容易,但是当我看到其他人的答案时,我想“为什么要以简单的方式做,而您却可以以困难的方式做”:D
好的,diskpart 是终端应用程序,这意味着它有自己的 CLI( c ommand l ine i nterface)。这意味着,如果您想将命令写入磁盘部件,则必须将其作为标准输入写入磁盘部件自己的 CLI( st andar d in put)。这就是为什么您不能通过批处理文件写入命令的原因,因为在 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 命令的 stdout 重定向到 diskpart 应用程序。因此,来自 echo 的 stdout 现在将充当 diskpart 应用程序的 stdin。 因此,您运行 diskpart,diskpart 从 echo 获取输入,就像从键盘获取输入一样,当然它可以工作!
就是这样,简单易行的解决方案!
关于command-line - 用于运行 DiskPart 的批处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16985518/