Veröffentlicht 20. Juli 201015 j Hallo Gemeinde. Folgender Quelltext gibt fehlerhafte daten aus und ich sehe den Fehler nicht: reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices" |find "\\" >"%userprofile%\Tiny_Backup\printer.txt" for /f "delims=\ tokens=1-3" %%a in ("%userprofile%\Tiny_Backup\printer.txt") do ( if /i not %%b==PrintserverA ( echo %%a\\%%b\%%c >> "%userprofile%\Tiny_Backup\printer.tmp" ) else ( echo %%a\\PrintserverB\%%c >> "%userprofile%\Tiny_Backup\printer.tmp" ) ) del /f /q "%userprofile%\Tiny_Backup\printer.txt" ren "%userprofile%\Tiny_Backup\printer.tmp" printer.txt Vor Beginn der For-Schleife ist das Ergebnis eine Text-Datei, mit den für den Benutzer installierten Netzwerkdruckern. In der For-Schleife wird das dann aber so gewandelt, das am Ende in der neuen Printer.txt nur noch c:\\Documents and Settings\"Benutername" drin steht. Gerade so als würde er nicht die Text-Datei in der Schleife abarbeiten sondern nur die Variable %username% selbst. Für Sachdienliche Hinweise beantworten Sie den Thread oder wenden Sie sich an die nächgelegene Polizeidienststelle.
20. Juli 201015 j ..lass die Anführungszeichen bei ("%userprofile%\Tiny_Backup\printer.txt") weg.. Grüße Ripper
20. Juli 201015 j Autor Das läßt die Schleife Endlos weiterlaufen ohne das eine printer.tmp erstellt wird. Hab gerade die Lösung gefunden. for /f "usebackq delims=\ tokens=1-3" %%a in ("%userprofile%\Tiny_Backup\Printer.txt") do ( ... Dann wird es so wie erwartet abgearbeitet. Bearbeitet 20. Juli 201015 j von User\Root
20. Juli 201015 j Das läßt die Schleife Endlos weiterlaufen ohne das eine printer.tmp erstellt wird. Hab gerade die Lösung gefunden. for /f "usebackq delims=\ tokens=1-3" %%a in ("%userprofile%\Tiny_Backup\Printer.txt") do ( ... ..oder lass wie gesagt "usebackq" und die Anführungszeichen weg.. Die Klammern reichen.. for /f " delims=\ tokens=1-3" %%a in (%userprofile%\Tiny_Backup\Printer.txt) do ( ... Grüße Ripper
20. Juli 201015 j Wenn der Pfad in den Klammern in Anführungszeichen gesetzt werden muss (bspw. weil er Leerzeichen enthält), dann muss immer der Parameter "usebackq" verwendet werden.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.