1. 程式人生 > 程式設計 >批處理閃退、執行中斷等問題的處理方法

批處理閃退、執行中斷等問題的處理方法

因為我只會一些批處理程式碼,所以我的“區域網共享一鍵修復”等軟體就都做成了批處理程式(字尾名為.bat)供大家使用。有些網友反饋:右鍵執行批處理,會一閃而過。或者,執行後共享修復也不成功。下面我整理彙總了一些最常見的情況及其原因,供大家參考。

一、閃退

1、不要隨便修改批處理程式的名稱

以我製作的“區域網共享一鍵修復”為例,在Win7及更高版本的系統執行時,必須滑鼠右鍵選擇“以管理員身份執行”。此時,如果遇到閃退(介面一閃而過),很可能是因為你修改了本程式的名稱,尤其不能包含英文括號(),其餘還有哪些字元不能出現我沒一一測試。因此強烈建議大家不要修改批處理程式的預設名稱,或者遇到閃退問題時改回來。

2、注意登錄檔這一項的值

如果你發現不僅右鍵執行批處理程式會閃退,甚至直接雙擊批處理,或開啟“命令提示符”都閃退的話,很可能是登錄檔的這一項值有問題。開始-執行,輸入regedit,按下回車鍵開啟登錄檔編輯器,依次展開下面的專案:HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor,在右側找到“AutoRun”這一項,把裡面的值清空,然後關閉登錄檔,再試試。

3、不要在U盤、行動硬碟直接執行

如果批處理程式在U盤、行動硬碟上,建議複製到桌面上,再右鍵滑鼠,選擇“以管理員身份執行”。如必須在u盤等介質執行,可以按住shift,同時滑鼠右鍵點選此資料夾選擇“在此處開啟命令視窗”,然後輸入批處理檔名,再按回車即可。(感謝:丶白天說夢話 )

二、修復不成功:請先關閉殺軟、防火牆和安全軟體後再執行

像“區域網共享一鍵修復”,必須右鍵以“管理員身份執行”才能正常完成修復。因此,強烈建議大家在執行之前,先把防毒軟體、防火牆軟體、安全軟體(360、金山、騰訊管家等)關閉後再執行我的程式,否則,很可能在執行過程中被攔截、誤殺造成執行失敗、修復不完全。當然,你也可以將我的程式加入到以上軟體的白名單進行忽略,保證執行環境不受影響。

三、其餘問題

另外,你遇到其他問題時還可以進行以下的嘗試並重啟系統後再試試:

1、更新殺軟、安全軟體後對系統分割槽進行掃描防毒(排除系統檔案如CMD被病毒破壞);

2、用360系統急救箱等軟體進行系統檔案的修復;

最後,如果以上都沒有解決你的問題,請留言反饋,我會不定時補充、更新。

1、一定要說清楚你的系統版本(包括32位?64位?);

2、一步步描述清楚你執行我製作的批處理所遇到的問題現象;

執行.BAT指令碼閃退的詭異原因

今日執行一個BAT指令碼檔案,發現僅僅閃了一下就退出了。於是我認為.BAT指令碼檔案本身有錯誤,所以開始排錯,以下是我排除錯誤的步驟:

1.由於別處原先存在一個此BAT檔案的拷貝,而別處的那一個能正常執行,但這一個BAT卻不能正常執行,利用比較工具比較發現兩個BAT檔案的內容完全相同。所以排除了書寫錯誤。

2.鑑於以上的基礎上,我只能懷疑是位置變了,BAT檔案裡面引用的相對路徑解析成絕對路徑後肯定變化了,可能因為絕對路徑的不同會有影響,因此我加了箇中pause一步步的試,發現也不是這個原因。

3.鬱悶啊,無解啊。正在此時我發現了一個關鍵的問題,那就是此次不能執行的BAT檔案所在的資料夾名字裡麵包含了括號。因此我覺得問題可能是這個括號的原因,趕緊將括號去掉,一執行,瞬間不再閃退了,搞定。看來問題真的是BAT檔案所在資料夾的名字裡麵包含了括號的原因啊。

好吧,既然已經知道問題所在了,那麼當然很好奇有沒有別人遇到過,或者有沒有對這個問題的詳細描述呢?果斷百度啊,可是發現的線索很少,僅僅一個微軟的英文資料裡面有提到。看來我是個大奇葩,居然這麼小概率的事件讓我遇到了。英文資料的網址:http://support.microsoft.com/kb/217127/en-us。

基本意思是說.BAT指令碼檔名裡面不能有括號,否則會將括號解釋成為命令的。如果你非要用帶括號的名字來命名BAT指令碼檔案,可以在cmd窗口裡面將檔案用引號括起來就行了。圖例如下:

但我今天這個問題算是一個新發現,那就是不僅BAT檔案本身的名字裡面不能包含括號字元,就連BAT檔案所在的資料夾以及更上層的資料夾的命名都不能包含括號。

我們小編補充:

bat閃退一般是因為程式中執行有問題,引用的程式或功能無法實現,程式碼錯誤都會引起這個問題。如果無法執行說明與環境有關係或者bat程式碼錯誤,最好是最基本的bat能否正常執行開始測試,一點點的發現問題。

一般來說需要有點bat編寫經驗的人才能更好的解決。