2008年9月29日

好用的 netsh 指令

對於經常帶著筆記型電腦到處走,且又沒有 DHCP Server 可使用時,若要使用網路,都需要手動設定 IP address 、subnet mask、default gateway、Proxy Server等網路設定,甚至修改完畢還需重新啟動電腦,十分地麻煩,還好 Windows 2000 之後的作業系統內建有個指令可以解決這的問題。
以下的說明,以公司與家裡為範例進行說明,請依照您的實際環境與需求,自行參酌、變通。
第一次使用時需要先產生參考檔,請先將 TCP/IP 的 IP address 相關資料改成公司的,然後開啟命令提示字元,也就是 MS-DOS 視窗,輸入:
netsh -c interface dump > company.txt
此指令是將公司的 TCP/IP 設定值存檔到 company.txt 內。其中的-c 變更指定的 netsh 內容。interface 設定 TCP/IP 通訊協定 (包含位址、預設閘道、DNS 伺服器及 WINS 伺服器),並顯示設定及統計資訊。dump 將設定列出。> 將螢幕輸出導向到某的檔案。company.txt 要導向的檔案名稱。
接著將 TCP/IP 的 IP address 相關資料改成家裡的,在 MS-DOS 視窗,輸入:netsh -c interface dump > home.txt
此指令是將家裡的 TCP/IP 設定值存檔到 home.txt 檔
此時所欠缺的就是批次檔,依據不同的環境來設定 TCP/IP,我們需要撰寫兩個批次檔,第一個為 company.bat ,其內容為: @netsh -f company.txt
另一個為 home.bat ,其內容為:@netsh -f home.txt
此後,當要使用公司的 TCP/IP 設定時,就執行 company.bat ,在家裡時,就執行 home.bat。甚至可以在桌面上,替那兩個批次檔設定捷徑與快速鍵,直接按下 hot-key 就可以即時切換 TCP/IP 的設定。

2008年9月13日

讀取LOG檔案

由於要讀取記錄檔,並且能夠產出指定時間內的LOG
可是記錄檔的時間格式由於因為版本的關係會有多種不同的格式
於是在判別時需要多種格式可供轉換
但是是因為版本不同的關係
所以記錄檔的格式會是
時間格式A:
時間格式A:
時間格式A:
時間格式B:
時間格式B:
時間格式B:
時間格式C:
時間格式C:

在這裡有三種時間格式,所以一開始就有三種格式來判別

logdatetimeformat = [None,\
[lambda x: x[1:20],"時間格式A"],\
[lambda x: x[1:20],"時間格式B"],\
[lambda x: x[0:17],"時間格式C"]]
def dealline(line):
for format in logdatetimeformat :
if format :
rs = parsedatetime(format[0](line),format[1])
if rs :
logdatetimeformat[0]=format
return rs
return None


如此就可以在某個格式一但連續的話,就不需要多花時間還要判斷是否為其他的時間格式