中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 00:21
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 自动关闭硬盘 查看 1,035 回复 9
楼 主 自动关闭硬盘 发表于 2008-06-27 10:16 ·  中国 上海 上海电信科技发展有限公司(中山南路111号)
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
20年会员
UID 55507
性别 男
来自 重庆
状态 离线
还请求助~~~

Windows有自动关闭硬盘的功能, 我想用BAT来实现, 还请各位大大帮忙~

我在网上找了很多的资料, 但是不知道如何来调用, BAT能实现这个功能吗?
2 发表于 2008-06-27 10:34 ·  中国 云南 昆明 电信
社区乞丐
积分 -61
发帖 37
注册 2008-04-19 17:10
18年会员
UID 116329
性别 男
状态 离线
兄试试POWERCFG命令
3 发表于 2008-06-27 11:00 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
powercfg /change 家用/办公桌 /disk-timeout-ac 1
4 发表于 2008-06-27 11:05 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
for /f "skip=3 tokens=2" %%a in ('powercfg /query') do (
set PowKind=%%a
goto :setting
)
:setting
powercfg /change %PowKind% /disk-timeout-ac 1
5 发表于 2008-06-27 11:42 ·  中国 上海 上海电信科技发展有限公司(中山南路111号)
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
20年会员
UID 55507
性别 男
来自 重庆
状态 离线
感谢FQ兄和HAT兄的帮忙, HAT和我都是重庆的也, 呵呵~~
6 发表于 2008-06-27 12:52 ·  中国 上海 上海电信科技发展有限公司(中山南路111号)
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
20年会员
UID 55507
性别 男
来自 重庆
状态 离线
Originally posted by HAT at 11:05:
@echo off
for /f "skip=3 tokens=2" %%a in ('powercfg /query') do (
set PowKind=%%a
goto :setting
)
:setting
powercfg /change %PowKind% /disk-timeout-ac 1


按照兄给的代码跑了下, 发现PowKind参数的赋值不对, 如果直接定义是没有这种方法好, 可是代码还有问题, 如下图.



结果PowKind=不受支持了~~

还有goto :setting有点多余, for完以后不是自动跑下面的嘛..

还请问兄skip=3 tokens=2 这个怎么改进, 我看过for的参数, 但还是不太明白, skip是跳过前3行, tokens是到第2列~~但是不能指定啊..

Help!
7 发表于 2008-06-27 13:16 ·  中国 上海 上海电信科技发展有限公司(中山南路111号)
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
20年会员
UID 55507
性别 男
来自 重庆
状态 离线
失误失误~~~

不断实验发现HAT是对的, 如果得到第一次的值就goto到setting就对了~~

哈哈, 感谢HAT兄, 如果我想设置一个参数给时间, 如:


powercfg /change %PowKind% /disk-timeout-ac %ClsTime%


我要在前面如何做才可以, 以前在论坛有看到过做输入的, 好像是用set命令吧, 不太熟悉, 望指教, thanks!
8 发表于 2008-06-27 13:49 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set /p t=请输入时间(分钟):
for /f "skip=3 tokens=2" %%a in ('powercfg /query') do (
set PowKind=%%a
goto :setting
)
:setting
powercfg /change %PowKind% /disk-timeout-ac %t%
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
BWSkyer +2 2008-06-27 14:07
9 发表于 2008-07-02 12:53 ·  中国 广东 韶关 电信
高级用户
★★★
CMD感染者
积分 691
发帖 383
注册 2008-05-23 00:38
18年会员
UID 119451
性别 男
状态 离线
又如何取消关闭硬盘
10 发表于 2008-07-02 21:03 ·  中国 河南 南阳 电信
初级用户
积分 61
发帖 32
注册 2007-05-11 20:17
19年会员
UID 88214
性别 男
状态 离线
支持9楼
论坛跳转: