Board logo

标题: 自动关闭硬盘 [打印本页]

作者: BWSkyer     时间: 2008-6-27 10:16    标题: 自动关闭硬盘

还请求助~~~

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

我在网上找了很多的资料, 但是不知道如何来调用, BAT能实现这个功能吗?
作者: FQ     时间: 2008-6-27 10:34
兄试试POWERCFG命令
作者: HAT     时间: 2008-6-27 11:00

powercfg /change 家用/办公桌 /disk-timeout-ac 1

作者: HAT     时间: 2008-6-27 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

作者: BWSkyer     时间: 2008-6-27 11:42
感谢FQ兄和HAT兄的帮忙, HAT和我都是重庆的也, 呵呵~~
作者: BWSkyer     时间: 2008-6-27 12:52


  Quote:
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!
作者: BWSkyer     时间: 2008-6-27 13:16
失误失误~~~

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

哈哈, 感谢HAT兄, 如果我想设置一个参数给时间, 如:
powercfg /change %PowKind% /disk-timeout-ac %ClsTime%
我要在前面如何做才可以, 以前在论坛有看到过做输入的, 好像是用set命令吧, 不太熟悉, 望指教, thanks!
作者: HAT     时间: 2008-6-27 13:49

@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%

作者: radem     时间: 2008-7-2 12:53
又如何取消关闭硬盘
作者: diangongban     时间: 2008-7-2 21:03
支持9楼