因?yàn)槲抑粫?huì)一些批處理代碼,所以我的“局域網(wǎng)共享一鍵修復(fù)”等軟件就都做成了批處理程序(后綴名為.bat)供大家使用。有些網(wǎng)友反饋:右鍵運(yùn)行批處理,會(huì)一閃而過。或者,運(yùn)行后共享修復(fù)也不成功。下面我整理匯總了一些最常見的情況及其原因,供大家參考。
一、閃退
1、不要隨便修改批處理程序的名稱
以我制作的“局域網(wǎng)共享一鍵修復(fù)”為例,在Win7及更高版本的系統(tǒng)運(yùn)行時(shí),必須鼠標(biāo)右鍵選擇“以管理員身份運(yùn)行”。此時(shí),如果遇到閃退(界面一閃而過),很可能是因?yàn)槟阈薷牧吮境绦虻拿Q,尤其不能包含英文括號(hào)(),其余還有哪些字符不能出現(xiàn)我沒一一測(cè)試。因此強(qiáng)烈建議大家不要修改批處理程序的默認(rèn)名稱,或者遇到閃退問題時(shí)改回來。
2、注意注冊(cè)表這一項(xiàng)的值
如果你發(fā)現(xiàn)不僅右鍵運(yùn)行批處理程序會(huì)閃退,甚至直接雙擊批處理,或打開“命令提示符”都閃退的話,很可能是注冊(cè)表的這一項(xiàng)值有問題。開始-運(yùn)行,輸入regedit,按下回車鍵打開注冊(cè)表編輯器,依次展開下面的項(xiàng)目:HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor,在右側(cè)找到“AutoRun”這一項(xiàng),把里面的值清空,然后關(guān)閉注冊(cè)表,再試試。
3、不要在U盤、移動(dòng)硬盤直接運(yùn)行
如果批處理程序在U盤、移動(dòng)硬盤上,建議復(fù)制到桌面上,再右鍵鼠標(biāo),選擇“以管理員身份運(yùn)行”。如必須在u盤等介質(zhì)運(yùn)行,可以按住shift,同時(shí)鼠標(biāo)右鍵點(diǎn)擊此文件夾選擇“在此處打開命令窗口”,然后輸入批處理文件名,再按回車即可。(感謝:丶白天說夢(mèng)話 )
二、修復(fù)不成功:請(qǐng)先關(guān)閉殺軟、防火墻和安全軟件后再運(yùn)行
像“局域網(wǎng)共享一鍵修復(fù)”,必須右鍵以“管理員身份運(yùn)行”才能正常完成修復(fù)。因此,強(qiáng)烈建議大家在運(yùn)行之前,先把殺毒軟件、防火墻軟件、安全軟件(360、金山、騰訊管家等)關(guān)閉后再運(yùn)行我的程序,否則,很可能在運(yùn)行過程中被攔截、誤殺造成運(yùn)行失敗、修復(fù)不完全。當(dāng)然,你也可以將我的程序加入到以上軟件的白名單進(jìn)行忽略,保證運(yùn)行環(huán)境不受影響。
三、其余問題
另外,你遇到其他問題時(shí)還可以進(jìn)行以下的嘗試并重啟系統(tǒng)后再試試:
1、更新殺軟、安全軟件后對(duì)系統(tǒng)分區(qū)進(jìn)行掃描殺毒(排除系統(tǒng)文件如CMD被病毒破壞);
2、用360系統(tǒng)急救箱等軟件進(jìn)行系統(tǒng)文件的修復(fù);
最后,如果以上都沒有解決你的問題,請(qǐng)留言反饋,我會(huì)不定時(shí)補(bǔ)充、更新。
1、一定要說清楚你的系統(tǒng)版本(包括32位?64位?);
2、一步步描述清楚你運(yùn)行我制作的批處理所遇到的問題現(xiàn)象;
運(yùn)行.BAT腳本閃退的詭異原因
今日運(yùn)行一個(gè)BAT腳本文件,發(fā)現(xiàn)僅僅閃了一下就退出了。于是我認(rèn)為.BAT腳本文件本身有錯(cuò)誤,所以開始排錯(cuò),以下是我排除錯(cuò)誤的步驟:
1.由于別處原先存在一個(gè)此BAT文件的拷貝,而別處的那一個(gè)能正常運(yùn)行,但這一個(gè)BAT卻不能正常運(yùn)行,利用比較工具比較發(fā)現(xiàn)兩個(gè)BAT文件的內(nèi)容完全相同。所以排除了書寫錯(cuò)誤。
2.鑒于以上的基礎(chǔ)上,我只能懷疑是位置變了,BAT文件里面引用的相對(duì)路徑解析成絕對(duì)路徑后肯定變化了,可能因?yàn)榻^對(duì)路徑的不同會(huì)有影響,因此我加了個(gè)中pause一步步的試,發(fā)現(xiàn)也不是這個(gè)原因。
3.郁悶啊,無解啊。正在此時(shí)我發(fā)現(xiàn)了一個(gè)關(guān)鍵的問題,那就是此次不能運(yùn)行的BAT文件所在的文件夾名字里面包含了括號(hào)。因此我覺得問題可能是這個(gè)括號(hào)的原因,趕緊將括號(hào)去掉,一運(yùn)行,瞬間不再閃退了,搞定??磥韱栴}真的是BAT文件所在文件夾的名字里面包含了括號(hào)的原因啊。
好吧,既然已經(jīng)知道問題所在了,那么當(dāng)然很好奇有沒有別人遇到過,或者有沒有對(duì)這個(gè)問題的詳細(xì)描述呢?果斷百度啊,可是發(fā)現(xiàn)的線索很少,僅僅一個(gè)微軟的英文資料里面有提到。看來我是個(gè)大奇葩,居然這么小概率的事件讓我遇到了。英文資料的網(wǎng)址:http://support.microsoft.com/kb/217127/en-us。
基本意思是說.BAT腳本文件名里面不能有括號(hào),否則會(huì)將括號(hào)解釋成為命令的。如果你非要用帶括號(hào)的名字來命名BAT腳本文件,可以在cmd窗口里面將文件用引號(hào)括起來就行了。圖例如下:
但我今天這個(gè)問題算是一個(gè)新發(fā)現(xiàn),那就是不僅BAT文件本身的名字里面不能包含括號(hào)字符,就連BAT文件所在的文件夾以及更上層的文件夾的命名都不能包含括號(hào)。
腳本之家小編補(bǔ)充:
bat閃退一般是因?yàn)槌绦蛑袌?zhí)行有問題,引用的程序或功能無法實(shí)現(xiàn),代碼錯(cuò)誤都會(huì)引起這個(gè)問題。如果無法執(zhí)行說明與環(huán)境有關(guān)系或者bat代碼錯(cuò)誤,最好是最基本的bat能否正常運(yùn)行開始測(cè)試,一點(diǎn)點(diǎn)的發(fā)現(xiàn)問題。
一般來說需要有點(diǎn)bat編寫經(jīng)驗(yàn)的人才能更好的解決。