個人電腦技術問題二三事

洪秀雄

一、前言

現在以個人電腦(PC)處理文書已經是大家習以為常的事了,而以個人電腦處理日常業務、瑣事等也越行司空見慣。本館自四、五年前開始電腦化後,現在圖書館中幾乎沒有幾件事和個人電腦是無關的。可是儘管如此,大部分館員在使用電腦時仍然停留在只管使用、不求甚解的程度,電腦使用得沒有效率,每天平白虛耗不少時間。為了加強館員在電腦方面的能力,過去我曾經幾次給大家上一些基本技術的訓練課程,並且通常都有準備講義或大綱給大家留存參考。不過一些常犯的毛病仍然存在,顯然有一些人聽完就算了,並沒有把講義保留參考。這次乘這個機會做一次整理及補充,並且刊登在館訊上長久保存,相信對一般讀者也會有參考價值。

二、個人電腦與DOS部分

◎檢查個人電腦的硬體設備及功能的方法

可以使用DOS 6.0以上所附的MSD.EXE ,或 PCTOOLS 9.0以上所附的SI.EXE,或QAPLUS的檢查硬體的功能。三種程式都有可能誤判,但不會太離譜。SI.EXE是我最喜歡的,因為它還能檢查出你電腦的整體表現,包括主機板、硬碟、記憶體等整體的運作效率。不過如果還要檢查週邊設備,如 PARALLEL PORTS,SERIAL PORTS等的狀況及表現,則無疑地 QAPLUS 甚至於可以滿足專業的需求。

◎開機的設定

強烈建議使用多重設定(Multi-configuration ),不但可以節省記憶體,而且可以防止完全無法開機的情況發生;因為如果有一種開機設定無法開機成功,可以選用另一種開機設定,等開完機後再去修改剛剛開不成機的那一種設定。

開完機後要有效率的使用該部個人電腦的資源,就有賴於CONFIG.SYS及AUTOEXEC.BAT的規劃。事實上,不同的機器、不同的需求有不同的設定,以下僅列一組CONFIG.SYS及AUTOEXEC.BAT供大家參考,你可以依樣畫葫蘆,或者加以改進。扼要的說明列在該行的右手邊。

◎CONFIG.SYS的要件

HIMEN.SYS , EMM386.EXE , FILES=n , BUFFERS=m
☆範例
[MENU] 【Multi-config. 的目錄及代號】
menuitem=EMS
menuitem=WINDOWS
menuitem=NET
menuitem=CDROM
[COMMON] 【表示這裡的是共用的】
shell=c:\command.com c:\ /p /e:256
[EMS] 【第一種設定】
device=c:\dos\himem.sys /testmem:off 【上層記憶體的管理程式】
device=c:\dos\emm386.exe ram 2048 【表示劃出2 MB的RAM模擬成EMS】
break=on 【這行讓你在執行錯誤指令時,可以用crtl+C中斷執行】
buffers=30 【輸出入的暫存區大小】
files=30 【最多同時可開啟到30個檔案】
dos=high,umb 【把DOS 放在上層記憶UMB】
lastdrive=e 【磁碟機數最多可以有五個】
devicehigh=c:\dos\setver.exe 【將setver.exe放在UMB】
[WINDOWS] 【第二種設定】
device=c:\dos\smartdrv.exe /double_buffer 【啟動快取管理程式】
device=c:\dos\himem.sys
dos=high,umb
device=c:\dos\emm386.exe noems 【所有的RAM都做為XMS,不用做EMS】
break=on
files=30
buffers=30
stacks=9,256 【這行可以省掉】
[NET] 【第三種設定】
device=c:\dos\himem.sys /testmem:off
dos=high,umb
; device=c:\dos\emm386.exe noems 【本行無效】
device=c:\dos\emm386.exe ram 512 x=d000-dfff noems
devicehigh=c:\dos\setver.exe ↖【RAM的d000-dfff段空出來,以免
break=on 和其他系統位址相衝】
files=25
buffers=20
; CardSoft(TM) 3.1 PCMCIA DRIVERS 【本行為輔助說明,不執行的】
devicehigh=c:\cardsoft\sscirrus.exe 【以下五行為啟動PCMCIA卡之用】
devicehigh=c:\cardsoft\cs.exe
devicehigh=c:\cardsoft\csalloc.exe
devicehigh=c:\cardsoft\cardid.exe 【以上這些程式都放到UMB】
install=c:\cardsoft\cs_apm.exe
[CDROM] 【第四種設定】
device=c:\dos\smartdrv.exe /double_buffer
device=c:\dos\himem.sys
device=c:\dos\emm386.exe noems 【不需要EMS】
break=on
buffers=30
files=30
dos=high,umb
lastdrive=e
stacks=9,256
; ***** Magic ATCD Converter Device Driver *****
device=c:\atcd\pana562.sys 【國際牌CD-ROM的趨動程式】
[COMMON] 【共用的,每一種設定都適用】
; -- Modified by PC-cillin -- 【本行為輔助說明,不執行】
DEVICE = C:\PCCI5\PCC_DEV.SYS 【PCCILLIN 5.0以上防毒系統
的趨動程式】

◎AUTOEXEC.BAT的要件

PATH , DOSKEY , PROMPT $P$G
附註:PATH的進階用法
path=c:\;c:\dos;c:\bat;c:\bin;c:\utl;c:\pctools;
path=%path%;c:\windows;c:\pcci5;
↖就是這個東西
這樣可以讓你不必將所有路徑都排在漫長的同一行上。
☆範例
echo off 【以下的行都不要顯示出來】
CD \PCCI5
PCCILLIN 【啟動PCCILLIN防毒系統】
CD \
goto %config% 【根據config.sys的item menu
定義的設定跳行執行 】
:EMS
path=c:\;c:\dos;c:\bat;c:\utl;c:\bin5;
path=%path%;c:\windows;c:\pctools; 【這行使你不必把path都擠到同一行】
set font=c:\fontsha 【除非另有宣告,字型用fontsha的】
set temp=c:\windows\temp 【暫存區用\windows\temp】
set lib=c:\lib5
set include=c:\include
set init=c:\bin5 【以上三行為FORTRAN所需】
rem LH /L:1,12736 append c:\utl 【本行無效 】
append c:\utl 【自動連結c:\utl的檔案 】
c:\dos\doskey 【自動記錄鍵入的過程 】
echo ****** Set for SHA2, CTEX etc. with EMS ******
goto end 【跳到叫 :end 的地方 】
:WINDOWS
c:\dos\smartdrv.exe
path c:\dos;c:\;c:\windows;c:\utl;c:\bat;c:\pctools;
set temp=c:\windows\temp
lh doskey 【將doskey放到上層記憶體】
echo ******** SET FOR CWINDOWS with NOEMS *******
goto end
:NET
set font=c:\fontoa
path=c:\;c:\dos;c:\utl;c:\bat;c:\windows;c:\pctools;
path=%path%c:\pcci5;c:\ncsa;
set temp=c:\windows\temp
loadhigh append c:\utl;
loadhigh doskey
echo ******** SET FOR PCMCIA NET ********
goto end
:CDROM
lh /L:0;1,46992 /S c:\dos\smartdrv.exe
path c:\;c:\dos;c:\windows;c:\utl;c:\bat;c:\pctools;
set temp=c:\windows\temp
LH C:\dos\mscdex d:maxcddrv
LH /L:1,6384 doskey
echo ******** SET FOR CDROM *******
goto end
:end
prompt $p$g 【標示每一行的提示,包括
$p: 所在目錄區,$g: >符號】
【補充一】如果在開機時發現有不正常、或者無法把config.sys及autoexec.bat 完成執行的情形發生,而由於螢幕捲動太快,來不及看清錯誤訊息,可以在重開機時,在選擇設定菜單之前,先按一下[F8]鍵,然後在每次詢問時均答 Y,就會一行一行執行給你檢閱,這樣你就可以清楚的看出來執行到哪裡才出問題的。

【補充二】在使用WINDOWS 的情況下,許多人在執行himem.sys 及emm386.exe、smartdrv.exe時特別呼叫windows子目錄下的程式(如
device=c:\windows\himem.sys
dos=high,umb
device=c:\windows\emm386.exe noems ),
其實是不對的。因為不論DOS 或WINDOWS都是微軟公司的出品,兩者是相通的,但是DOS 最後出到 6.23版,WINDOWS 只出到3.1版就停了,所以DOS 的比較新,功能較好,毛病較少。

◎常用DOS指令

⊿要檢查目前有哪些程式佔用了記憶體,如何分配,還有多少記憶體可用等,可執行 mem /c|more (enter)。最後的「|more」是一個很好用的附加選擇,當你的資料會超過一個螢幕時,太快的捲動會使你看不到前面的顯示,「|more」使螢幕的捲動以一頁為單位,次第顯示。

⊿拷貝比較多檔案時,用xcopy 比copy快、而且方便得多,尤其是需要連同子目錄一起拷貝下來時更是方便無比。語法:xcopy c:\mydir a: /s 【最後的 "/s" 表示連同子目錄一起抄錄】

⊿要將檔案換到另一個目錄區或磁碟,用move比較快速、方便。如move *.* \dir1 【相當於 copy *.* \dir1 + del *.*】move file*.txt a:\lee1

⊿DOS 6.0 版以上執行 diskcopy可以一次將一整個磁片複製到另一磁片上,但是對抄的磁片必需是相同的才可以,例如 1.2 MB 的對 1.2MB 的,1.44 MB 的對 1.44 MB的。如果要複製到另一種容量不同的磁片,可以用 PCTOOLS 9.0 的 fastcopy ,不過,有時由 1.44 MB複製到 1.2 MB 的磁片會有問題,因為前者比後者容量大。

⊿檢查磁碟有無瑕疵,或者所存資料完不完整,可執行 chkdsk /f(DOS 6.0 以前),或 scandisk (DOS 6.X 版)。但是還有其他考慮,見下面「硬碟維護技巧」篇。

⊿整理磁碟可執行 defrag c: (enter) (或d: 或a: 或b:均可,看你要整理哪一個磁碟而定。

⊿要讓DOS幫你將電腦的記憶體管理最佳化(最有效率),可執行memmaker (enter),但有問題不可勉強。

◎批次檔(*.bat)的運用

批次檔可以有效的取代一個一個指令的執行,讓你不必每次都要記得一堆執行指令及它們的順序。
☆範例
◎ethan.bat
echo off
call c:\et3\et3 【執行倚天中文系統 】
cd \hanin
hanin 【執行漢音辭彙系統 】
cd \%1 【執行完後跳到希望的目錄區】
◎ethan_q.bat
c:\hanin\hanin /q 【關閉漢音辭彙系統 】
c:\et3\sethrc 【退出倚天 】
◎taipei.bat
c:
cd \ncsa
telnet 192.83.187.1 【telnet台北市立圖書館 】
◎opac.bat
c:
cd \ncsa
telnet 140.115.130.201 【telnet本校圖書館opac系統】
◎oa_hp.bat 【啟動OAMATE,並以HP-Laser
c: Jet 為對象列表機】
cd c:\oagm
set font=d:\fontoa
fg /i
PRNDEV /PPCL /E
oagm /A4 /p /f0 /s
cd \%1

◎個人電腦硬碟維護技巧
因為磁碟在儲存資料時是採用隨機處理的方式,也就是說磁碟中哪裡有空位就擠進那裡,所以同一組資料可能是散在磁碟的不同位置。久而久之,磁碟的資料會變得非常零亂,以至於在找資料時需要較長的時間,使得電腦的運算速度慢下來,同時增加發生錯誤的機會。故為維護硬碟的資料完整及其正常運作,每隔一、二星期需做以下的動作:
1. chkdsk /f (enter)
2. defrag c: ( 或 d:) (enter)
若磁區太過零碎,先選擇 "defrag" 做一次,再選擇 "config"做一次。不然直接選擇"config"做一次就可以。

電腦每次不正常關機(包括被迫關機)時,資料常會出現損壞或誤置,故再開機時,先做一次 chkdsk /f ,若出現錯誤訊息(error message),選擇 "save as files",然後才做下一步動作,以免因cross link的錯誤把資料更進一步攪在一起而擴大損失。

如果你的電腦管理系統是DOS 6.0或更新的,在鍵入 chkdsk /f 後,會被告知最好使用 scandisk ,並被問:
Do you still want to run chkdsk /f (Y/N) ?
建議你堅持執行 chkdsk /f (亦即回答 Y )。除非硬碟已經亂到 chkdsk /f 無法處理(見下面一點的說明)。

在defrag的過程中,若出現磁區有損壞的訊息,並被問是否進行修復時,「千萬不要」魯莽的回答「要」!這時最好先退出 defrag,並執行 chkdsk /f ,先讓 chkdsk 將cross link files分離開後(這時cross link 的檔案大多數都還在,而且未受損害),再作 defrag,否則 defrag 會立刻呼叫 scandisk 逕行修補的動作:將被懷疑損壞的的區域予以封閉,而 cross link files 也有可能被當成損壞的磁軌處理,這時 cross link files 就再也救不回來,而遭受資料永久損失及磁區永久封閉的雙重損失!(DOS 6.2以上可能已經更正scandisk的缺失,則以上這一段話可以忽略。)
不論chkdsk或scandisk將cross link files分離開並救回來後,原先攪在一起(佔用同一磁區)的檔案,現在很可能有一個是錯的(和另一個是相同的),必需再檢查,並做進一步處理。

三、個人電腦與中文WINDOWS的部分

WINDOWS 是一種非常惱人的系統,不但平常沒事也會有些檔案突然變成無法執行或抓取不到或損壞,尤其在安裝新的應用軟體時,因為許多檔案及程式都會同時被動到,而且除非行家中的行家,很難得知到底那些東西在安裝的過程中被更改了,一旦新安裝的軟體無法順利運作,想反悔時也無法恢復原狀。故聰明的作法是:將WINDOWS目錄區的「所有檔案及程式」複製到另一個目錄區中(例如xcopy c:\windows c:\win_bak /s),一旦出問題時再反其道抄回來就可以恢復原狀。再強調:只備份 *.ini ,*.dll 及*.grp 是不夠的!而且在安裝新的應用軟體之前一定要做一次澈底的備份。

問題是:中文WINDOWS 的程式加上字型是很佔記憶體的,少則五、六十MB多則一百多MB,要做一個完全一樣的備份恐怕太耗硬碟空間了。聰明的作法是:將字型分開放。例如將所有的中文字型放在C:\FONTCH ,英文字型放在 C:\FONTEN,不要把字型一股腦兒都放到C:\WINDOWS\SYSTEM之中。

這樣 WINDOWS的內容再複雜,都很難超過五十MB,要備份就容易多了。這樣作還有一些好處,包括字型可以很乾淨的被你掌握,增刪字型容易,不易出錯等。

WINDOWS 在中文字型太多時很容易當機。如果使用WINDOWS 原來所附的細明體(MINGLI.TTF)為原設定字型(Default Font)的話,大約中文字型不能超過三、四種。MINGLI.TTF是利用筆畫組字技術的。對付的方法是將 Default Font改成描邊或外框字型,如超研澤字型。這樣可用的字型大約可以擴張到十種,而還不會當機或不正常運作。基本的做法是修改win.ini:
先找到AssocSystemFont=TT,,MingLi.FOT
  這一行(在 [DBCSFonts] 之下),將它修改為AssocSystemFont=TT,,L2.FOT
(L2.TTF為超研澤中隸體,你可以選用別的你中意每天看的字型,只要把 "L2"改成你要的字型的代號就可以了)
 再找到
[Associated DefaultFonts]
FontPackageDontCare=細明體
FontPackageRoman=細明體
FontPackageSwiss=細明體
FontPackageModern=細明體
FontPackageScript=細明體
FontPackageDecorative=細明體
  修改為
[Associated DefaultFonts]
FontPackageDontCare=超研澤中隸體
FontPackageRoman=超研澤中隸體
FontPackageSwiss=超研澤中隸體
FontPackageModern=超研澤中隸體
FontPackageScript=超研澤中隸體
FontPackageDecorative=超研澤中隸體
  再存檔。這裡「超研澤中隸體」要從win.ini 中(在更下面)
[fonts]
超研澤中隸體 (TrueType)=C:\WINDOWS\SYSTEM\L2.FOT
超研澤古印體 (TrueType)=C:\WINDOWS\SYSTEM\OV.FOT
超研澤海報體 (TrueType)=C:\WINDOWS\SYSTEM\POP.FOT
一字不差的抄過來。
執行win ,進入windows。執行中文視窗的「主群組」下的「控制台」,啟動「字型」 圖示,將細明體刪除。
【重要的附註】在做好以上的程序之前「千萬不要」逕自將MINGLI.FOT刪除,否則保證你WINDOWS 永遠開不成。一個良心的建議,Default Font無論何時都一定要存在,而且最好能放在C:\WINDOWS\SYSTEM 之中。另外,在修改WIN.INI 之前記得先存一份備份,如copy win.ini win_ini.bak,而且養成這樣的好習慣。萬一改錯時可以隨時救回來。