本帖最后由 yakeyun 于 2022-4-18 15:28 编辑
如图所示,如何将C盘后面的40G空间,不重启系统情况下,无损扩展给C盘,D盘后面的分区容量不要动。
已知用下面命令可以完成扩展,其中标签"系统"是唯一固定变量:- diskpart
- list volume
- select volume 0
- extend noerr
复制代码
待扩展分区编号,已经用下面命令获取到了,就是不知道DISKPART的命令传递该怎么调用。- @echo off
- for /f "tokens=2" %%a in ('echo list volume ^| diskpart ^|find/i "系统" ^| find /i "启动"') do (
- set nc=%%a
- )
- echo 当前待扩展分区编号为:%nc%
-
- pause
复制代码
===========================================================================
===========================================================================
修改为下面命令后,参数传递不过去,卡在了最后一步(extend noerr 命令没有自动确认)。- @echo off
- for /f "tokens=2" %%a in ('echo list volume ^| diskpart ^|find/i "系统" ^| find /i "启动"') do set nc=%%a
- echo select volume %nc% >C:\Users\Administrator\Desktop\scriptname.txt
- echo 当前待扩展分区编号为:%nc%
- (@echo extend noerr | diskpart /s "C:\Users\Administrator\Desktop\scriptname.txt")
- pause
复制代码
===========================================================================
===========================================================================
经过不断尝试,发现传递参数只要记录在文本中,可以无限传递执行。
最终代码为:- @echo off
- for /f "tokens=2" %%a in ('echo list volume ^| diskpart ^|find/i "系统" ^| find /i "启动"') do set nc=%%a
- echo select volume %nc% >C:\Users\Administrator\Desktop\scriptname.txt
- echo extend noerr >>C:\Users\Administrator\Desktop\scriptname.txt
- echo 当前待扩展分区编号为:%nc%
- diskpart /s "C:\Users\Administrator\Desktop\scriptname.txt"
- pause>nul
复制代码
|