中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-07 00:56
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教用批处理判断硬盘大小 查看 613 回复 5
楼 主 请教用批处理判断硬盘大小 发表于 2007-12-28 10:32 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
我这里有两种硬盘
80G和160个
我想用批处理判断硬盘大小
如果硬盘是80G的``就运行程序1.exe
如果是160的硬盘 就运行程序1.exe 2.exe
请问这个批处理该怎么写呢?我查询了很久也没有找到答案``
2 发表于 2007-12-28 11:14 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
既然是两个,只要判断一个就行了
@echo off&setlocal enabledelayedexpansion
for /f "skip=1" %%i in ('wmic diskdrive get size') do (
set a=%%i
if "!a:~0,1!"=="8" (start 1.exe) else (strat 1.exe&2.exe)
)
pause
3 发表于 2007-12-28 11:24 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
for /f "tokens=1,* delims==" %%a in ('wmic DISKDRIVE get size /value ^| findstr /i Size') do set DiskSize=%%b&&goto :begin

:begin
if "%DiskSize%" equ "80023265280" (
start 1.exe
) else (
start 2.exe
)
4 发表于 2007-12-28 13:07 ·  中国 江苏 常州 武进区 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
以HAT兄的改了一下:
(因为我发现我的80G的盘不是80023265280 而是80023749120 所以取前两位)

@echo off
for /f "usebackq" %%i in (`wmic DISKDRIVE get size /value ^| find /i "size="`) do set %%i
if "%size:~,2%"=="80" (start 1.exe)else (start 1.exe&&2.exe)
pause


[ Last edited by terse on 2007-12-28 at 01:16 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
fengzi +2 2007-12-28 14:15
简单!简单!再简单!
5 发表于 2007-12-28 13:18 ·  中国 重庆 沙坪坝区 电信
中级用户
★★
金牌会员
积分 315
发帖 152
注册 2007-01-25 23:55
19年会员
UID 77669
性别 男
状态 离线
谢谢了``我试下``
6 发表于 2007-12-28 13:38 ·  中国 重庆 电信
初级用户
积分 40
发帖 19
注册 2007-12-21 01:50
18年会员
UID 106322
性别 男
状态 离线
学习了....
论坛跳转: