2-frozen Geschrieben 5. Februar 2014 Geschrieben 5. Februar 2014 Hallo zusammen, besonders liebe BATCHler ich stehe ein : vor dem Abschluss eines Nervenzusammenbruchs. Folgende derzeitige Ausgangssituation: Diese Dinge soll das Batchfile übernehmen 1. Suche in C:\windows\inf\ nach oem*.inf und durchsuche selbige nach dem String "Treibername". 2. Nimm Besagte Datei und schreib ihren Namen in eine %VARIABLE% 3. pnputil -d %VARIABLE% Hier der entsprechende Code, der funktioniert, sofern es sich bei oemXX.inf um ein ANSI File handelt. @echo off c: cd c:\windows\inf REM Test zum schauen ob das Ergebnis das Richtige ist for /f "delims=:" %%a in ('findstr "\<Treibername.CAT\>" "*.inf"') do echo "%%a" 2>nul REM Achtung, unteres REM entfernen um Skript aktivieren REM for /f "delims=:" %%a in ('findstr "\<Treibername\>" "*.inf"') do pnputil -f -d "%%a" Wobei das Ausgabeergebnis von %a oemXX.inf ist. Bei UNICODE inf Dateien scheitert das ganze, da findstr kein UNICODE lesen kann. Dafür gibt es denn Umweg über die strings.exe von sysinternals. angepasster Code sieht so aus: for /f "delims= " %a in ('strings *.inf ^| findstr "treibername.cat" ') do echo "%a" Ergebnis wäre C:\windows\Inf\oemXX.inf: Wie zum Teufel bekomme ich den blöden Doppelpunkt am Ende weg, damit pnputil -d %a wieder funktioniert? Thx 2-frozen Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.