Войти

Показать полную графическую версию : BAT файл каждые 20 секунд читающий TXT файл.


A555555
26-05-2025, 17:46
Здравствуйте.
Цель: борьба с парковками HDD подключенных через USB хаб.


BAT файл (закинуть в Автозагрузку), чтоб он в корне дисков F, G, H, I, J, K каждые 20 секунд производил чтение TXT файла пустышки, ради того чтоб происходило действие на диске и он не парковался. В случае, если указанные диски в данный момент не подключены, не выдавал ошибку о том, что невозможно прочитать.

Помогите пожалуйста.

DJ Mogarych
26-05-2025, 18:23
Можно сначала попробовать отключить энергосбережение в свойствах диска (https://answers.microsoft.com/en-us/windows/forum/all/prevent-external-usb-hard-drive-from-entering/57a268e2-68a3-4680-a738-91f10b94a6be).

Если не поможет, то есть программка KeepAliveHD (https://github.com/stsrki/KeepAliveHD), которая занимается вот этой писаниной файликов.
Есть также NoSleepHD и прочие варианты (https://alternativeto.net/software/nosleephd/).

NickM
26-05-2025, 18:55
@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
29-05-2025, 15:07
NickM, ИМХО, чтобы работало, rem надо убрать. И можно обойтись без пустышки@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
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




© OSzone.net 2001-2012