Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Laufwerk anhand Seriennr. via Batch-Script identifizieren

Frage Entwicklung Batch & Shell

Mitglied: toolix

toolix (Level 1) - Jetzt verbinden

06.03.2009, aktualisiert 09:21 Uhr, 4421 Aufrufe, 3 Kommentare

In einem Batch-Skript unter Windows XP möchte ich einen angeschlossenen Datenträger via Volume-Seriennr. identifizieren.

Dafür nutze ich das Kommando fsutil fsinfo volumeinfo in einer Schleife.

Folgendes Batch-Skript sollte die Seriennummern aller verfügbaren Laufwerksbuchstaben von C...Z abfragen und die gefundenen Seriennummern mit einer Vorgabe vergleichen.

01.
@echo off & setlocal 
02.
 
03.
Set VolSN=0x12345678 
04.
 
05.
for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (  
06.
	fsutil fsinfo volumeinfo %%a:\ >nul  
07.
	IF ERRORLEVEL 0 for /f "Tokens=3* delims=\ " %%i in ('fsutil fsinfo volumeinfo %%a:\^|find "Volumeseriellennummer"') do ( 
08.
		if %%i==%VolSN% ( 
09.
			echo gefunden 
10.
		) else ( 
11.
			:: mache nichts 
12.
13.
14.
)  
15.
 
16.
endlocal 
17.
exit
Findet das Skript ein Volumen, bei dem die Seriennummern übereinstimmen, so soll es eine Erfolgsmeldung ausgeben.

Das Problem besteht darin, dass der Vergleich der gefundenen Seriennummer mit der Vorgabe noch nicht funktioniert.

Bin für jede Hilfe dankbar.
Mitglied: 60730
06.03.2009 um 11:33 Uhr
Servus,

irgendwie ist dein Script etwas zu lang....
und wenn du @echo off rausgenommen hättest - wärst du auch auf mindestens einen Fehler gekommen.
"Exit" - selbst wenn dein Script funktioniert hätte - exit gibt dir gar nicht die Möglichkeit - etwas zu sehen, weil die Dosbos dabei immer geschlossen wird

01.
@echo off & setlocal 
02.
@Set "VolSN=0x12345678" 
03.
@for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (fsutil fsinfo volumeinfo %%a:\)|find "%VolSN%" && goto found 
04.
goto end 
05.
:found 
06.
echo Laufwerk %VolSN% wurde gefunden 
07.
:end		 
08.
endlocal 
09.
pause
gruß
Bitte warten ..
Mitglied: toolix
06.03.2009 um 11:48 Uhr
Danke für die schnelle Hilfe.

Vor dem exit hatte ich eigentlich auch noch ein pause stehen.

Ich habe das Beispiel nun noch erweitert, so dass mir von dem entsprechenden Volume mit der vorgegebenen Seriennummer noch der Laufwerksbuchstabe zurückgegeben wird.

01.
@echo off & setlocal 
02.
 
03.
Set VolSN=0x12345678 
04.
 
05.
@for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (fsutil fsinfo volumeinfo %%a:\)|find "%VolSN%" && set Vol=%%a && goto found  
06.
goto end  
07.
 
08.
:found  
09.
echo Das Laufwerk %VolSN% wurde gefunden  
10.
echo Es hat den Laufwerksbuchstaben %Vol% 
11.
goto end 
12.
 
13.
:end		  
14.
endlocal 
Bitte warten ..
Mitglied: 60730
06.03.2009 um 11:59 Uhr
Danke für die schnelle Hilfe.

nicht dafür - danke fürs "Danke"

Ps: Du magst wohl gerne etwas "mehr" *lach - Zeile 11 ist etwas überflüssig
Nach Zeile 10 geht "er" eh zu Zeile 13.

Gruß
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zu viele Variablen in Batch-Script? Speicherproblem? (2)

Frage von dolsch zum Thema Batch & Shell ...

Visual Studio
gelöst DotNet - Windows 2016 identifizieren (3)

Frage von emeriks zum Thema Visual Studio ...

Batch & Shell
gelöst Batch-Script für FTP-Zugang lässt sich nicht als Admin ausführen (5)

Frage von Bobstarlet zum Thema Batch & Shell ...

Windows Server
Geschwindigkeitsbremse Identifizieren (18)

Frage von cymode zum Thema Windows Server ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

LAN, WAN, Wireless
Gebäudeverkabelung 10Gigabit LWL (27)

Frage von raffzwo zum Thema LAN, WAN, Wireless ...

Windows Update
Novemberpatches und Nadeldrucker bereiten Kopfschmerzen (14)

Tipp von MettGurke zum Thema Windows Update ...