我试图消除用于自动化diskpart的临时脚本文件(即diskpart / s scriptFile),将其替换为通过管道发出的命令,但我似乎无法弄清楚如何检测diskpart何时抛出一个错误。如果您有驱动器N:使用不存在的驱动器更改选择卷,则diskpart将生成错误:
(
(
echo select disk 0
echo list partition
echo select vol n
) | diskpart
set foundErr=1
if errorlevel 0 if not errorlevel 1 set "foundErr="
if defined foundErr goto :errorMsg
echo Success!
goto :EOF
)
:errorMsg
echo diskpart failed!
goto :EOF
pause
我将上面的代码基于this answer,但它无效。
这是可能的,还是使用了管道阻塞或干扰了磁盘部件错误检测?
答案 0 :(得分:0)
我还没有测试过。但这应该有效:
(
(
echo select disk 0
echo list partition
echo select vol n
) | diskpart
if "%errorlevel%"=="0" (
if not "%errorlevel%"=="1"
(
set "foundErr="
)
) Else set foundErr=1
if defined foundErr goto errorMsg
echo Success!
goto :EOF
)
:errorMsg
echo diskpart failed!
goto :EOF
pause