Board logo

标题: [系统相关] 多个硬盘下如何判断系统当前在哪个硬盘 [打印本页]

作者: jy00805348    时间: 2017-7-7 16:28     标题: 多个硬盘下如何判断系统当前在哪个硬盘

本帖最后由 pcl_test 于 2017-7-7 17:26 编辑

需求如下:
在电脑上接入多个硬盘,批量对所有硬盘进行整盘擦除操作,然后做报废处理,中间当然不能对正在运行的操作系统的硬盘做处理。
现在本人写了一段BAT程序调用第三方软件达到了硬盘擦除的功能,但是不知道如何来判断某个硬盘是否有正在运行操作系统。

如果存在则跳过对这块硬盘擦除的操作,否则就进行擦除操作。

求一段代码来判断硬盘有运行的操作系统。

请个为大神赐教, 谢谢!
作者: codegay    时间: 2017-7-7 16:47

HOMEDRIVE

HOMEDRIVE
作者: a2002    时间: 2017-7-7 17:13

  1. if not "需要判断的盘"=="%SystemDrive%" 擦除
复制代码

作者: 523066680    时间: 2017-7-7 17:17

本帖最后由 523066680 于 2017-7-7 17:27 编辑

题主有说多个硬盘,
比如其他电脑上的硬盘接过来,现在有两个硬盘,各有N个分区,各有1-2个系统分区的那种……

判断是可以判断的,交给热心用户吧
作者: a2002    时间: 2017-7-7 17:34

回复 4# 523066680


    呃,这种情况倒没见过
作者: ShowCode    时间: 2017-7-7 20:45

把你的代码发出来看看,我试试帮你加个判断。
作者: jy00805348    时间: 2017-7-7 21:46

回复 6# ShowCode

这是三个模块,现在就是要手动擦除和自动全部硬盘的时候能判断跳过运行操作系统的硬盘的。
@echo off
echo                            ***********正在获取磁盘信息***********  
echo.
::del %USERPROFILE%\Desktop\disktools\diskinfo.txt /q > nul
"%USERPROFILE%\Desktop\disktools\gdisk32.exe"
setlocal enabledelayedexpansion
for /f "skip=1 tokens=1 delims= " %%i in ('%USERPROFILE%\Desktop\disktools\gdisk32.exe') do (set num=!num! %%i)
::echo !num!

echo                           ***********正在擦除磁盘信息***********
echo.
del %USERPROFILE%\Desktop\disktools\wipeinfo.txt /q > nul
echo 磁盘编号为:!num!
for %%j in (%num%) do (%USERPROFILE%\Desktop\disktools\gdisk32.exe %%j /diskwipe /dodwipe >> %USERPROFILE%\Desktop\disktools\wipeinfo.txt)
echo 完成!
pause

echo.
set /p select=请输入:
::擦除单个磁盘
echo %select% | findstr "%num%" > nul && (%USERPROFILE%\Desktop\disktools\gdisk32.exe %select% /diskwipe /dodwipe > %USERPROFILE%\Desktop\disktools\wipeinfo.txt) || (echo "输入错误!请重新输入" & goto lp)
pause
作者: jy00805348    时间: 2017-7-7 21:48

回复 3# a2002


    如果结果的硬盘是其他电脑系统盘,会不会也有%SystemDrive%?
作者: 窄口牛    时间: 2017-7-8 10:51

%SystemDrive%是你当前所在系统的环境变量。别的硬盘和你所在的系统没任何关系。




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2