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
A co takhle to rozdělit či jen vložit odkaz na textový soubor, ve kterém to bude?
'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
tak ty 2 odpovědi to je jeden script, neskočí na disk 3,4- skončí u druhého který udělá 3x
tohle by mělo fungovat:
To se mi zdá nějak jednoduché oproti tomu co jsem našel,nicméně nevim jak to zakomponovat protože to neběhá, ty co mam jsem dal do vbs souboru ale ten tvuj nedělá nic
tohle by mělo fungovat na systémech, kde je defrag.exe (nejsem si jist, že je na W2000):
Jo taak, no tam nejni to uz jsem tedy přepsal- je tam dfrg.msc,ale vim že jsem otravnej ale ten script udělá toto- pustí defragmentaci a nic vic (uz nezacne defrag ani analýza),křížkem ji zavřu,on ji otevře znova ale na druhym disku a takhle dal a dal ale na tretim a ctvrtym disku
jeslti to je na jednu mašinu, tak to udělej napřímo a můžeš použít i parametr -f
To ale přeci nejde, dvoulitry nemaj defrag ale dfrg.msc a tam prepinace nebehaj (tedy na zadne jsem neprisel), proto přes ty scripty
defrg.msc a defrag.exe jsou dva rozdílné nástroje a v XP jsou oba. Viz:
http://support.microsoft.com/default.aspx?scid=kb;e n-us;Q227463
dále jsem ti vygooglil tohle:
W2KDfrag.htm
je tam i prográmek "autodefrag," který by měl dělat přesně to, co potřebuješ
P.S.:BTW, další důkaz nedodělanosti Win2k...
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)
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
Bomba tak to běhá jak má,dokonce neni problém upravit to pro víc disků,pro toho kdo by to potřeboval,tak jsou tam scipty i pro xpčka a pro 1 až 4 disky.
Touchwoode moc dík