我正在尝试开发一个批处理文件来运行并删除 Windows 7 中的隐藏分区,当尝试删除所有分区时。通常我在命令提示符窗口中逐行执行此操作,但试图找出如何创建批处理文件来运行并加快此过程。
以下是我在命令提示符下键入的行。
disk part
Rescan
List Disk
Select Disk 3
List Partition
Select Partition 3
Delete Partition Override
我已经创建了一个 BAT 文件,但只能让第一个命令起作用。
这真的很容易,但是当我看到其他人的答案时,我想“为什么要用简单的方法来做,当你可以用困难的方式来做的时候”:D
好的,diskpart 是终端应用程序,这意味着它有自己的 CLI(command line i界面)。这意味着,如果您想向 diskpart 写入命令,则必须将其作为 stdin 写入 diskpart 自己的 CLI(standard input)。这就是为什么您无法通过批处理文件编写命令的原因,因为您的 diskpart 命令将在 diskpart 退出后作为 cmd.exe 的下一个命令运行。
现在我们只需“欺骗”diskpart 并模拟标准输入到他的 CLI 即可。
我们可以这样实现:
(echo Rescan
echo List Disk
echo Select Disk 3
echo List Partition
echo Select Partition 3
echo Delete Partition Override
) | diskpart
pause
因此,上面的代码执行以下操作:
echo 命令将生成标准输出(standard output)。通常我们的命令行解释器 cmd.exe 只会在屏幕上打印出这个标准输出。 (您可以通过运行来尝试only回显命令带括号在cmd.exe中)
然后,使用管道|
我们将这些 echo 命令的标准输出重定向到 diskpart 应用程序中。因此,来自 echo 的标准输出现在将充当 diskpart 应用程序的标准输入。
因此,您运行 diskpart,diskpart 从 echo 获取输入,类似于从键盘获取输入,当然它可以工作!
这就是全部,简单易行的解决方案!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)