如何在使用管道时检测diskpart中的错误?

时间:2016-06-28 03:16:03

标签: windows cmd pipe disk-partitioning errorlevel

我试图消除用于自动化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,但它无效。

这是可能的,还是使用了管道阻塞或干扰了磁盘部件错误检测?

1 个答案:

答案 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