Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Autodefragmentace přes wscript

Ahoj lidi,
našel jsem po delšim hledání na netu script na autodefragmentaci ve win2000prof CZ, do 2 disků běhá ok,ale ja to potřebuji na komp kde jsou 4 disky. stahoval jsem to z této stránky: http://www.windowsitpro.com/Articles/Index.cfm?Arti cleID=8276 a upravil jsem jen české názvy, programovat neumim a teď ten problém- zkoušel jsem asi 3 scripty jeden mi ze 4 disků zdefragmentuje 3x ten druhej, další nepřešel ani na druhý disk, třetí zase přeskakuje 3 disk,pastnu sem třeba ten co 3x udělá 2 disk:

/Tak bohužel nepastnu, je to moc řádek a neodešle to dotaz,ale pokud se najde někdo kdo by mi mohl poradit tak zašlu na mail/

Nevidíte někdo problém?? Já fakt ne:-/
Předem moc dík a omlovám se za tak dlohou otázku ;-)

Předmět Autor Datum
/Tak bohužel nepastnu, je to moc řádek a neodešle to dotaz,ale pokud se najde někdo kdo by mi mohl p…
anarchist 11.04.2006 15:13
anarchist
'This script launches defrag and sends keys to the UI in 'order to automate the defrag process. Set…
Maverick 11.04.2006 15:23
Maverick
'Bring the msgbox to the foreground. WshShell.AppActivate "Defragmentace byla dokončena" WScript.Sle…
Maverick 11.04.2006 15:23
Maverick
tak ty 2 odpovědi to je jeden script, neskočí na disk 3,4- skončí u druhého který udělá 3x
Maverick 11.04.2006 15:25
Maverick
tohle by mělo fungovat: Set WshShell = WScript.CreateObject("WScript.Shell") Dim fso, d, dc Set fso…
touchwood 11.04.2006 15:21
touchwood
::) To se mi zdá nějak jednoduché oproti tomu co jsem našel,nicméně nevim jak to zakomponovat protož…
Maverick 11.04.2006 15:29
Maverick
tohle by mělo fungovat na systémech, kde je defrag.exe (nejsem si jist, že je na W2000): Set WshShe…
touchwood 11.04.2006 15:40
touchwood
Jo taak, no tam nejni to uz jsem tedy přepsal- je tam dfrg.msc,ale vim že jsem otravnej ale ten scri…
Maverick 11.04.2006 15:46
Maverick
jeslti to je na jednu mašinu, tak to udělej napřímo a můžeš použít i parametr -f
touchwood 11.04.2006 16:00
touchwood
To ale přeci nejde, dvoulitry nemaj defrag ale dfrg.msc a tam prepinace nebehaj (tedy na zadne jsem…
Maverick 11.04.2006 16:19
Maverick
defrg.msc a defrag.exe jsou dva rozdílné nástroje a v XP jsou oba. Viz: http://support.microsoft.co…
touchwood 11.04.2006 19:42
touchwood
Super,sice jsem toho vygooglil dost ale na tohle jsem nenarazil, teď jsem se nedostanu na ten se 4 d…
Maverick 12.04.2006 10:15
Maverick
Bomba tak to běhá jak má,dokonce neni problém upravit to pro víc disků,pro toho kdo by to potřeboval… poslední
Maverick 13.04.2006 12:00
Maverick

'This script launches defrag and sends keys to the UI in
'order to automate the defrag process.
Set WshShell = CreateObject("WScript.Shell")

'Launch Defrag from the command line and wait for a second.
WshShell.Run "dfrg.msc"
WScript.Sleep 1000

'Wait until the application has loaded - Check every second.
While WshShell.AppActivate("Defragmentace disku") = False
WScript.Sleep 1000

Wend

'Modifications by Alfonsom, fixed/updated by Josh West.
Dim oFSO, oDrives, oDrive, firstjump
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oDrives = oFSO.Drives
firstjump = 0

'We use this variable to check if we have jumped first in
'the drive list.
'It is necessary because the key sequence is a bit
'difference in the first jump.
For Each oDrive In oDrives
If oDrive.DriveType = 2 Then

'Bring the application to the foreground.
WshShell.AppActivate "Defragmentace disku"
WScript.Sleep 200

'Send an ALT-A key to bring down the degrag menu.
WshShell.SendKeys "%A"
WScript.Sleep 200

'Send a D to start the defrag.
WshShell.SendKeys "D"

'Wait until the defrag is completed - Check for window
'every 5 seconds.
While WshShell.AppActivate("Defragmentace byla dokončena") = False
If WshShell.AppActivate("Defragmentace disku") = False Then
Exit For
End If
WScript.Sleep 5000

Wend

'Bring the msgbox to the foreground.
WshShell.AppActivate "Defragmentace byla dokončena"
WScript.Sleep 200

'Send a tab key to move the focus from View Report button
'to the Close Button.
WshShell.SendKeys "{TAB}"
WScript.Sleep 500

'Send key to Close the Defragmentation Complete window.
WshShell.SendKeys "{ENTER}"
WScript.Sleep 500

'Bring the application to the foreground.
WshShell.AppActivate "Defragmentace disku"
WScript.Sleep 200

'Move down to next drive
If firstjump = 0 Then WshShell.SendKeys "{TAB}{DOWN}"
firstjump = 1
Else: WshShell.SendKeys "{DOWN}"
End If
Next

'Send and ALT-F4 to Close the Defrag program.
If WshShell.AppActivate("Defragmentace disku") = True Then
WshShell.AppActivate "Defragmentace disku"
WshShell.SendKeys "%{F4}"
End If

'Send and ALT-F4 to Close the Defrag program.
If WshShell.AppActivate("Defragmentace disku") = True Then
WshShell.AppActivate "Defragmentace disku"
WshShell.SendKeys "%{F4}"
End If

tohle by mělo fungovat:

Set WshShell = WScript.CreateObject("WScript.Shell")

Dim fso, d, dc
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
For Each d in dc
If d.DriveType = 2 Then
Return = WshShell.Run("defrag " & d, 1, TRUE)
End If
Next

Set WshShell = Nothing

tohle by mělo fungovat na systémech, kde je defrag.exe (nejsem si jist, že je na W2000):

Set WshShell = WScript.CreateObject("WScript.Shell")

Dim fso, d, dc
Set fso = CreateObject("Scripting.FileSystemObject")
Set dc = fso.Drives
For Each d in dc
If d.DriveType = 2 Then
Return = WshShell.Run("defrag " & d, 1, TRUE)
End If
Next

Set WshShell = Nothing

C:\>defrag
Defragmentace disku systému Windows
Copyright (c) 2001 Microsoft Corp. and Executive Software International, Inc.
Použití:
defrag <svazek> [-a] [-f] [-v] [-?]
 svazek písmeno jednotky nebo připojovací bod (d: nebo
        d:\svazek\připojovací_bod)
 -a     Provede pouze analýzu
 -f     Vynutí defragmentaci i v případě nedostatku místa
 -v     Zobrazí podrobný výstup
 -?     Zobrazí text této nápovědy

Super,sice jsem toho vygooglil dost ale na tohle jsem nenarazil, teď jsem se nedostanu na ten se 4 diskama ale později to určitě zkusim.
Během zítra písnu zda to běhá a jestli jo tak jsi nejlepší (jako vždy:-D:-D)
zatim dík
P.S. sice nějaké ty problémy na win2k jsou ale mam je raději než xpčka, tedy alespoň zatím ;-)

Zpět do poradny Odpovědět na původní otázku Nahoru