仅当特定分区至少为一定大小时,我才尝试执行部分批处理文件。我在这里找到了一个在批处理文件中使用的 diskpart 示例:https ://stackoverflow.com/questions/18477576/get-the-amount-of-partitions-on-a-disk-0-using-batch-file
但是当我尝试修改它以从中获得我需要的东西时,它完全停止工作。我已经缩小到这个:
@ECHO OFF
ECHO select disk 0 > temp.scr
ECHO list partition >> temp.scr
diskpart /s temp.scr | findstr /r "Partition.[0-9]" > temp.txt
pause
根据我认为原件的工作方式,这不应该将使用正则表达式找到的字符串输出到 temp.txt 吗?无论我尝试什么,temp.exe 都是空的。
无论如何,最终目标是将批处理文件加载到 winPE 映像中,然后使用 startnet.cmd 自动运行。该批处理文件将查看磁盘上的每个分区,找到相关的分区(在这种情况下大于 ~200 gb),然后格式化该分区,然后运行一些我已经制作并正在运行的批处理文件。
For
此批处理文件将抓取所有分区记录并将它们解析为命令中的一系列临时环境变量在
For
命令正文中,您可以完全自由地使用DiskPart
进程中的令牌数据。您必须以管理员身份运行此批处理文件,否则它将无法正常工作。因为该
DiskPart
命令对磁盘大小使用 KB/MB/GB/TB 后缀,所以会根据已知值检查后缀以消除太小的磁盘,但也能够处理转换后的 1 到 199 TB 之间的磁盘到 1024 - 203776 GB 进行比较。可以在底部的黑色代码中放置其他命令,以进一步自动化该过程。
您可以在批处理文件中使用它 - 例如 getpart 4 2 以获取磁盘 4 分区 2 的详细信息