Здравствуйте.
Цель: борьба с парковками HDD подключенных через USB хаб.
BAT файл (закинуть в Автозагрузку), чтоб он в корне дисков F, G, H, I, J, K каждые 20 секунд производил чтение TXT файла пустышки, ради того чтоб происходило действие на диске и он не парковался. В случае, если указанные диски в данный момент не подключены, не выдавал ошибку о том, что невозможно прочитать.
Помогите пожалуйста.
Любой язык - BAT файл каждые 20 секунд читающий TXT файл.
-
DJ Mogarych
Re: Любой язык - BAT файл каждые 20 секунд читающий TXT файл.
Можно сначала попробовать
Если не поможет, то есть программка
Есть также
отключить энергосбережение в свойствах диска
.Если не поможет, то есть программка
KeepAliveHD
, которая занимается вот этой писаниной файликов.Есть также
NoSleepHD и прочие варианты
.-
megaloman
Re: Любой язык - BAT файл каждые 20 секунд читающий TXT файл.
Код:
Код: Выделить всё
@echo off
:: Зададим задержку в секундах (в минутах= 60 сек. * кол-во минут)
set /a "pause=20*1"
:: Бесконечный цикл
:LOOP
for %%i in (F G H I J K) do (
rem type "%%i:\empty.file" >nul 2>&1
echo."%%i:\empty.file"
)
call :TIMEOUT1
goto :LOOP
goto :EOF
:TIMEOUT1
timeout /t %pause% /nobreak >nul 2>&1-
megaloman
Re: Любой язык - BAT файл каждые 20 секунд читающий TXT файл.
NickM, ИМХО, чтобы работало, rem надо убрать. И можно обойтись без пустышки
Код:
ИМХО, лучше сделать vbs-скрипт. Не будет постоянно висеть окно CMD. Убить скрипт можно в диспетчере задач (процесс wscript)
[spoiler]Код: [/spoiler]
Код:
Код: Выделить всё
@Echo Off &Cls
Set /A TimeSec=20
:Begin
FOR %%d In (F, G, H, I, J, K) DO >nul 2>&1 Dir /B /A:D %%d:\
>nul Timeout /T %TimeSec%
GoTo :Begin
Exit /BИМХО, лучше сделать vbs-скрипт. Не будет постоянно висеть окно CMD. Убить скрипт можно в диспетчере задач (процесс wscript)
[spoiler]Код: [/spoiler]
Код: Выделить всё
Const TimeSec = 20
Dim x, i, D: D = Array("F", "G", "H", "I", "J", "K")
With CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Do
For Each i In D
x = "": x = .GetFolder(i & ":\").Size
' MsgBox x & vbCr & i
Next
WSctipt.Sleep TimeSec * 1000
Loop
On Error GoTo 0
End With