W jaki sposób mogę uzyskać numer seryjny dysku twardego jako zmienną z wiersza polecenia opartego na systemie Windows NT (w szczególności Windows XP i 7)? Ten, na który patrzę, to numer seryjny fizycznego dysku twardego
W jaki sposób mogę uzyskać numer seryjny dysku twardego jako zmienną z wiersza polecenia opartego na systemie Windows NT (w szczególności Windows XP i 7)? Ten, na który patrzę, to numer seryjny fizycznego dysku twardego
Odpowiedzi:
tom C:
otrzyma numer seryjny woluminu nadany mu przez system Windows.
wmic diskdrive otrzymuje numer seryjny
otrzymuje numer seryjny producenta dysku twardego.
wmic diskdrive get serialnumberotrzymuję wiadomość Invalid XML. Co to znaczy?
wmic diskdrive get serialnumber.
Invalid XMLbyło spowodowane połączeniem więcej niż jednego napędu i Invalid querywystąpiło, ponieważ korzystałem z systemu Windows XP. Zobacz tę odpowiedź dla obu problemów: stackoverflow.com/questions/9287450/…
wmic diskdrive get serialnumber(i Win32_DiskDriveogólnie klasa WMI) zwraca numer seryjny z odwróconą każdą parą znaków. Więc jeśli etykieta twojego dysku twardego brzmi „abcd1234”, WMI zgłosi twój numer seryjny jako „badc2143”. Więcej informacji tutaj .
To, czego szukasz, to NIE numer seryjny dysku twardego.
Nazywa się to numer seryjny woluminu . Jest generowany w momencie tworzenia i formatowania woluminu / partycji.
Możesz go uzyskać za pomocą polecenia w wierszu polecenia: C:\> vol c:jeśli C:jest to dysk, dla którego chcesz pobrać numer seryjny woluminu.
Wszystko, co możesz zrobić, to przekierować wyjście tego polecenia do pliku: C:\> vol c: > myvol.txtzostanie ono zapisane jako plik tekstowy w twoim plikuC:
Załączam zrzut ekranu z wyróżnieniami:

C: 
myvol.txtwygląda plik w Notatniku: 
W tym samym stylu, co odpowiedź Moaba, ale tym razem za pomocą PowerShell:
Get-CimInstance Win32_DiskDrive | Select-Object Model,SerialNumber
To polecenie pobiera instancję Win32_DiskDriveklasy WMI i wyświetla model każdego dysku w komputerze oraz odpowiadający jej numer seryjny z tej instancji.
Ta odpowiedź zakłada PowerShell 3.0 lub nowszy. Jeśli używasz starszej wersji, użyj Get-WmiObjectzamiast Get-CimInstance.
W systemie Windows 8 i nowszych można również użyć tego polecenia:
Get-PhysicalDisk | Select-Object FriendlyName,SerialNumber
W pliku wsadowym jednym podejściem jest:
for /f "tokens=5 delims= " %%a in ('vol c: ^| Find "Serial Number"') do (
set VOLSERIAL=%%a
)