2-frozen Geschrieben 5. Februar 2014 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.