2017-07-08 384 views
0

我最近一直在爲考試而學習,並且我讀的教科書告訴我,獲取計算機序列號的命令(在CMD中)如下所示 - (作爲降低盜版)。使用python和.bat文件獲取計算機序列號

wmic bios get serialnumber 

我決定試試這個自己使用蟒蛇,在這裏我希望得到我自己的電腦的序列號,我創建了一個批處理文件(.bat),並記錄序列號到一個txt文件,我當時認爲我可以在Python讀出,這創造了更多的問題,如果有的話...這是我目前擁有的代碼:

SerialNumber.bat(新蝙蝠文件的方式)

SET num=wmic bios get serialnumber 

%num% > serial.txt 

什麼serial.txt看起來像(略有修改,不會泄露我的序列號)

enter image description here

Readtxt.py

# Trying to read in two different ways 
with open("serial.txt", "r") as file: 
    print(file.read()) 

lines = [] 
for line in open("serial.txt"): 
    lines.append(line) 
print(lines) 

,其輸出:(未示出再次完整圖像)

enter image description here

的問題是:

  1. 如何將序列號存儲爲某個字符串?
  2. 爲什麼每個不同的方法我用來讀取提供不同的輸出?

感謝任何答案:)

+1

[批次部分](HTTPS寫入UTF-16-LE://計算器。 com/q/44880440/2152082) – Stephan

+2

看起來像unicode ....你可能需要解碼它。嘗試使用'rb'而不是'r'來閱讀,並在末尾添加一個「.decode()」。 –

回答

1

當重定向到一個文件WMIC以BOM

> wmic bios get serialnumber >serial.txt 

> hex.exe serial.txt 
HEX:  +00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0fabcdef 
0000000000: FF FE 53 00 65 00 72 00 69 00 61 00 6C 00 4E 00 .■S.e.r.i.a.l.N. 
0000000010: 75 00 6D 00 62 00 65 00 72 00 20 00 20 00 0D 00 u.m.b.e.r. . ... 

> type readtext.py 
with open("serial.txt", 'rb') as file: 
    print(file.read().decode('utf-16')) 

> py readtext.py 
SerialNumber 
5xxxxyyyy 
相關問題