題 在命令提示符下運行時,正常殺死defrag.exe


當我在命令提示符下運行defrag時,有沒有辦法在它完成之前優雅地停止進程?

如果在移動文件的過程中,殺死TM中的任務會導致任何問題嗎?

Windows 7 Pro 64位


4
2017-08-08 01:17


起源




答案:


理論上,終止程序應該是安全的(在您的情況下,您可以使用CTRL-C),因為在Microsoft磁盤碎片整理程序應用程序的設計中付出了努力,以防止在意外中斷的情況下數據丟失。這在Microsoft的網站上記錄如下:

The following steps are the processes by which Disk Defragmenter and
file system defragment an NTFS volume and update the MFT.

   1. Locate the fragments of each file throughout the disk.
   2. Copy the fragments to contiguous locations on the disk.
   3. Verify that the copy is an exact duplicate of the original file.
   4. Update the MFT in NTFS with the new location of the beginning of
      the file.
   5. Free up the space previously used by the file.

Microsoft - 磁盤碎片整理程序的工作原理
http://technet.microsoft.com/en-us/library/cc778290(WS.10).aspx
(上述文字可在“更新主文件表“)

基本上,數據是 複製 對於新扇區,指向已移動數據的指針將更新為指向這些新扇區,然後將舊扇區釋放。這是一種非常安全的方法,用於發生崩潰的情況,因為在最壞的情況下(如崩潰到藍屏),您將擁有相同數據的兩個副本,一個在未分配的扇區上,另一個在未分配的扇區上,另一個在分配的部門。從閱讀數據的角度來看,無論哪種方式都會出現相同的情況。

此外,可以對Microsoft使用的磁盤碎片整理技術進行許多改進(對於許多人來說已經綽綽有餘),並且在此處詳細檢查和比較了各種替代產品:

Defragger(來自Roedy Green的Java詞彙表)
http://www.mindprod.com/jgloss/defragger.html


4
2017-08-08 02:09



像往常一樣優秀的Randolf! - Moab


控制C取消它。

我不希望任務管理器造成任何傷害,因為它首先要求程序在暴力破壞之前關閉它。


6
2017-08-08 01:29



我問的原因是幾年前我打破了一個XP裝置,迫使碎片整理使用gui關閉,它不會響應,所以我在TM中殺了它,嘗試了幾次嘗試但是TM最終殺了它,重新啟動時它被打亂了。我生命中的那些年裡我很不耐煩。 - Moab
是的,被TM殺死並不總是一個好主意。我從C ++學到的最困難的課程之一是創建一個過程很容易。優雅地結束一個過程是男孩和男人之間的區別。 - surfasb
它是我的蠻力部分,它為什麼我問是否有一個優雅的方法。 - Moab
@Moab,只需使用Ctrl + C;它不會殺死進程,因為你可以看到它繼續(它檢測到按鍵,中止碎片整理,然後打印出一條消息)。我記得在DOS時代,有一種方法可以安裝一個Ctrl + C處理程序(我在Pascal程序中使用過一個),所以Windows-7控制台應用程序可以做到這一點也就不足為奇了。 - Synetech
@moab:不要使用TM。或者獲得一份副本 mydefrag 這使您可以更精細地控制您的defrags。別擔心。它使用與碎片整理相同的API。想想看,我不記得上次我必須啟動碎片整理程序了。它必須在Vista之前。 。 。 - surfasb


這個帖子 有很多有用的信息,關於在電源故障期間是否存在對磁盤進行碎片整理的危險(雖然與您的情況不一致,但您仍然會突然停止該程序 - 正如評論者所指出的那樣,如果系統能夠恢復的話從硬件中斷,軟件中斷可能不會受到傷害)。

看起來好像 defrag 正在跟進正常使用期間發生的日記。


2
2017-08-08 01:32



我想你可能想添加類似“如果即使硬關閉可能不會損壞它,那麼軟件關閉也不會” - soandos
好文章,但並沒有真正回答我關於如何優雅終止的問題。 - Moab
@soandos這是一個好點。實際上,兩種方法都是在軟件有機會清理之前停止運行。 - jonsca
@Moab我想我們兩個人都說Ctrl-C的傳統方法或者從任務管理器中刪除它不會傷害任何東西。跑一個 chkdsk (或等效的)以確保。 - jonsca
是的,但是通過這種方式,您可以更直接地回答問題,只是您可能想要添加到答案中的內容。 - soandos