To jest ulepszony skrypt @ Alexandru's dla Windows.
EDYCJA: Windows 8 nie będzie poprawnie uruchamiał skryptów ze spacjami w nazwach, ciągle prosi o otwarcie programu przy każdym wykonaniu. Spacje i znaki cudzysłowu zostały usunięte z nazw plików, a wersja została obniżona do wersji 1.01.
Zapisz jako KeepAwake101.wsf
:
<?xml version="1.0" encoding="utf-8"?>
<package>
<job id="keepAwake">
<?job error="false" debug="false"?>
<script>
//<![CDATA[
/*
* Copyright 2012 XP1
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*jslint browser: true, vars: true, white: true, maxerr: 50, indent: 4 */
(function (script, shell, fileSystem)
{
"use strict";
var currentDirectory = fileSystem.getFolder(shell.currentDirectory);
currentDirectory.createTextFile("empty.txt", true, false).close();
script.quit();
}(this.WScript, new this.ActiveXObject("WScript.Shell"), new this.ActiveXObject("Scripting.FileSystemObject")));
//]]>
</script>
</job>
</package>
Ten skrypt tworzy pusty plik w katalogu głównym bieżącego katalogu.
Następnie zapisz ten plik XML jako KeepAwake101.xml
:
<?xml version="1.0" encoding="utf-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Date>2012-01-01T00:00:01</Date>
<Author>Administrator</Author>
</RegistrationInfo>
<Triggers>
<BootTrigger>
<Repetition>
<Interval>PT20M</Interval>
<StopAtDurationEnd>false</StopAtDurationEnd>
</Repetition>
<ExecutionTimeLimit>PT30S</ExecutionTimeLimit>
<Enabled>true</Enabled>
</BootTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<GroupId>Users</GroupId>
<RunLevel>LeastPrivilege</RunLevel>
</Principal>
</Principals>
<Settings>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<MultipleInstancesPolicy>StopExisting</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT30S</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>\KeepAwake101.wsf</Command>
<WorkingDirectory>L:\</WorkingDirectory>
</Exec>
</Actions>
</Task>
Podczas zapisywania pliku XML pamiętaj o zapisaniu kodowania pliku jako UTF-16 (oznaczonego jako „Unicode” w Notatniku).
Na <Command>"\KeepAwake101.wsf"</Command>
, upewnij się, że zmodyfikujesz ten wiersz, dodając lokalizację skryptu.
Na <WorkingDirectory>L:\</WorkingDirectory>
, możesz zmienić ten wiersz na lokalizację dysku.
Start> Wszystkie programy> Akcesoria> Kliknij prawym przyciskiem myszy „Wiersz polecenia”> Uruchom jako administrator.
Przejdź do katalogu, w którym znajduje się plik XML.
Zaimportuj XML jako zadanie:
schtasks /create /tn "Keep Awake 1.01" /xml "KeepAwake101.xml"
Jeśli chcesz usunąć zadanie, wpisz:
schtasks /delete /tn "Keep Awake 1.01" /f
To zadanie jest skonfigurowane do uruchamiania co 20 minut. Zewnętrzny dysk twardy My Western Digital Elements 2 TB (WDBAAU0020HBK) śpi co 30 minut.
Po zaimportowaniu zadania możesz skonfigurować interwał i harmonogram za pomocą harmonogramu zadań. Aby otworzyć harmonogram zadań, w wierszu polecenia lub w oknie Start> Uruchom wpisz:
taskschd.msc
Ostrzeżenie:
Dyski Western Digital Green mogą mieć agresywną funkcję IntelliPark, która parkuje głowę po 8 sekundach bezczynności. Spowoduje to znaczny wzrost liczby cykli ładowania / rozładowania (LCC). Możesz sprawdzić LCC za pomocą oprogramowania, takiego jak Defraggler lub Hard Disk Sentinel w systemie Windows, które może odczytywać dane SMART.
Utrzymywanie dysku w stanie czuwania co 20 minut może ostatecznie zwiększyć LCC ponad limit. Zamiast uruchamiać ten skrypt, możesz rozważyć użycie dysku od czasu do czasu i pozostawienie go odłączonego.
Możesz przeczytać więcej tutaj:
http://www.sagaforce.com/~sound/wdantiparkd/
Chociaż możesz zmienić interwał skryptu na 7 sekund, aby zapobiec parkowaniu głowy, nie brzmi to zbyt dobrze.
Dobrym rozwiązaniem wdidle3.exe
byłoby wyłączenie funkcji IntelliPark lub dostosowanie limitu czasu.
Jeśli nie chcesz tego robić, dobrym pomysłem byłoby kupienie innego dysku twardego i użycie dysku twardego Western Digital Green jako dysku zapasowego, który trzeba tylko czasami włączać. Wszyscy uwielbiają kopie zapasowe.