|
本帖最后由 dos时代菜鸟 于 2021-2-2 21:57 编辑
1.
diskpart 可以通过管道接收 一条cmd 命令传递过来的 diskpart 指令,但是如果是多条就不怎么奏效
2.
通常 对于一组多条的 diskpart 指令,我们是通过 /s 参数调用脚本或者通过管道方式 如:type 脚本文件|diskpart 来完成
/s 的好处是 有些diskpart 指令 有 noerr 参数,可以无视错误。但缺点是 需要预先生成 脚本文件再调用。
今天尝试用 for 向diskpart 传递一组指令成功。也可以把 for 传递给 diskpart 后把运行的结果再作为信息流 嵌套 for 进行分析处理。但是 要注意 嵌套 for 要有 单引号 和 ^ 对特定字符进行标记。
举一个例子,显摆一下:
- @echo off
- setlocal ENABLEDELAYEDEXPANSION
- set n=0
- for /f "delims=" %%c in ('
- ^(
- for %%r in ^(
- "list disk"
- "list vol"
- "sele disk 0"
- "list disk"
- "detail disk"
- ^) do @^(
- echo %%~r
- ^)
- ^)^|diskpart
- ') do (
- if "%%c"=="DISKPART> " (
- set /a n+=1
- echo.
- echo.
- echo **** 第 !n! 条 DISKPART 指令 *************************
- echo.
- ) else (
- if !n! geq 1 echo %%c
- )
- )
- set /a n-=1
- echo 共运行了 !n! 条指令.
- pause
复制代码
|
评分
-
查看全部评分
|