Показать полную графическую версию : BAT файл каждые 20 секунд читающий TXT файл.
Здравствуйте.
Цель: борьба с парковками 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/).
@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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.