JustAMan / pyWinClobber

A set of Python scripts to clobber some free space out of Windows installations. Use at your own risk!
MIT License
58 stars 9 forks source link

Не работает на Win7 Prof Eng #2

Closed Badiboy closed 10 years ago

Badiboy commented 10 years ago

D:\Temp\32-bit>driver_cleanup.exe

Reading all OEM drivers... Traceback (most recent call last): File "", line 248, in module // (слово module в треугольных скобках) File "", line 158, in main File "", line 118, in getAllDrivers File "", line 77, in parseLine ValueError: too many values to unpack

cluster-master commented 10 years ago

Не работает на Windows 7 Ultimate 32-bit Russian

Reading all OEM drivers... Traceback (most recent call last): File "", line 248, in File "", line 158, in main File "", line 108, in getAllDrivers main.PnpUtilOutputError: Unexpected pnputil.exe output start: ╤ыєцхсэр  яЁюу Ёрььр PnP ╠рщъЁюёюЇЄ

[update]: L108: print output[0].decode('Cp1251')

Служебная программа PnP Майкрософт

по предыдущему багу Badiboy: L87: print self.driverDateAndVersion, type(self.driverDateAndVersion), len(self.driverDateAndVersion)

str, 0

split не пройдет, строки от pnputil должны чекаться перед разбором

ну на русской версии вообще не заведется без допила там вывод pnputil -e примерно такой

Опубликованное имя : oem69.inf Поставщик пакета драйвера: StarWind Software Класс: Контроллеры запоминающих устройств Дата разработки и версия драйвера : 03/18/2010 5.5.1.860 Имя подписавшего:

соответвенно, по имени утилиты можно определять RU или ENG и менять соответственным образом массив PARAMS_ORDER

YuukiHogo commented 10 years ago

Win7 x64 Home Basic RU после chcp 65001

Published name :            oem149.inf                                        
Driver package provider :   NVIDIA                                            
Class :                     Звуковые, видео и игровые устройства              
Driver date and version :   08/20/2013 1.2.5                                  
Signer name :               Microsoft Windows Hardware Compatibility Publisher

C:\bin\DriverStore Cleaner 64-bit>driver_cleanup.exe                          
Reading all OEM drivers...                                                    
Traceback (most recent call last):                                            
  File "<string>", line 248, in <module>                                      
  File "<string>", line 158, in main                                          
  File "<string>", line 118, in getAllDrivers                                 
  File "<string>", line 77, in parseLine                                      
ValueError: too many values to unpack                                         
andreykorolev commented 10 years ago

То же самое на Win7 x64 ultimate: C:\Utils\DriverClean>driver_cleanup.exe

Reading all OEM drivers... Traceback (most recent call last): File "<string>", line 248, in <module> File "<string>", line 158, in main File "<string>", line 118, in getAllDrivers File "<string>", line 77, in parseLine ValueError: too many values to unpack

JustAMan commented 10 years ago

Должно быть починено в https://github.com/JustAMan/pyWinClobber/releases/tag/v1.0.1

cluster-master commented 10 years ago

C:\tmp\pyWinClobber-1.0.1>python driver_cleanup.py Reading all OEM drivers... done Reading oem*.inf files... done Parsing DriverStore... Traceback (most recent call last): File "driver_cleanup.py", line 287, in main() File "driver_cleanup.py", line 254, in main with open(os.path.join(driverRepo, driverDir, infName), 'rb') as f: IOError: [Errno 2] No such file or directory: 'C:\Windows\system32\DriverStor e\FileRepository\snp2uvc.inf_x86_neutral_172184aba6eb6ffe\snp2uvc.inf'

может быть поправлено так в начала ++ import os.path

L254:

    path = os.path.join(driverRepo, driverDir, infName)
    if not os.path.exists(path):
        continue
    with open(path, 'rb') as f:
        content = f.read()
    ....
JustAMan commented 10 years ago

Можно, но так неправильно. На самом деле надо оборачивать в try...except. Я про этот баг забыл, спасибо, заведу новое issue.