2

我试图通过用通过管道发出的命令替换它来消除用于自动化diskpart的临时脚本文件(即diskpart / s scriptFile),但是我似乎无法弄清楚如何检测diskpart何时抛出错误。如果您有驱动器 N:将 select vol 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  

我将上面的代码基于这个答案,但它不起作用。

这是否可能,或者使用管道块或干扰磁盘部分错误检测?

4

1 回答 1

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  
于 2018-03-14T09:29:05.170 回答