![]() |
|
Alles rund um Windows: Batch: Problem (Zeichentausch)Windows 7 Hilfe zu allen Windows-Betriebssystemen: Windows XP, Windows Vista, Windows 7, Windows 8(.1) und Windows 10 / Windows 11- als auch zu sämtlicher Windows-Software. Alles zu Windows 10 ist auch gerne willkommen. Bitte benenne etwaige Fehler oder Bluescreens unter Windows mit dem Wortlaut der Fehlermeldung und Fehlercode. Erste Schritte für Hilfe unter Windows. |
![]() |
|
![]() | #1 |
/// Helfer-Team ![]() ![]() ![]() ![]() | ![]() Problem: Batch: Problem (Zeichentausch) Mir ist nicht so ganz klar, wozu das gut sein soll, aber ich sehe da drei potentielle Probleme: 1. Leitest Du die Ausgabe in eine andere Datei um als Du dann zum lesen benutzt. Hab also den Dateinamen geändert. 2. Hinter "for" wird der Variablen a nur der erste Teil aus der Datei zugwiesen, und zwar bis zum ersten Leerzeichen. Hab "tokens=*" hinzugefügt. 3. Wird %text% gleich zu Anfang der Batchdatei ausgewertet, also zu einem Zeitpunkt, wo die Variable text nicht vorhanden ist. Damit wird eine leere Zeichenfolge eingesetzt. Anstelle von "%" benutze ich "!", diese Art des Variableneinsatzes bewirkt, dass erst später zur Ausführung die Variable eingesetzt wird, dann wenn sie den richtigen Wert schon hat. Da das eine Möglichkeit ist, die je nach Konfiguration nicht immer von cmd.exe genutzt werden kann, schaltet die zusätzliche Zeile "setlocal enabledelayedexpansion" diese Möglichkeit ein. Raus kommt: Code:
ATTFilter systeminfo /FO CSV > %tmp%\sysinfo_raw.log setlocal enabledelayedexpansion for /f "tokens=*" %%a in ('more +2 %tmp%\sysinfo_raw.log') do ( set text=%%a set text=!text:"=#! echo !text! >> %tmp%\sysinfo_clean.log ) pause exit Schließlich sollte ">>" vielleicht noch durch ">" ersetzt werden, da die Ausgabedatei ansonsten bei jedem Aufruf nur verlängert wird. |
![]() | #2 |
![]() ![]() ![]() ![]() ![]() | ![]() Batch: Problem (Zeichentausch) Anleitung / Hilfe Ehrlich kann ich darin inzwischen auch keinen Sinn mehr erkennen.
__________________Instinktiv versuche ich immer erst eine Batchdatei, bevor mir wieder siedendheiß einfällt, dass ich mit einem Powershellscript nur ein Drittel der Zeit und ein Viertel des Codes benötige (bei einigen Dingen). Diese Batch ist auf jeden Fall im Müll gelandet. Trotzdem Danke, KarlKarl. Marc PS: täuscht es oder ist die Powershell immer noch nicht sonderlich verbreitet? |
![]() | #3 | |
Gesperrt | ![]() Batch: Problem (Zeichentausch) DetailsZitat:
Näher lag mir zunächst, das Ersetzen einfach aus der Schleife rauszunehmen: Code:
ATTFilter for /f "tokens=*" %%a in ('more +2 %tmp%\sysinfo.log') do set text=%%a set text=%text:"=#% echo %text% >> %tmp%\sysinfo_clean.log |
![]() |
Themen zu Batch: Problem (Zeichentausch) |
batch, besonders, blöd, code, datei, ersetzen, fehlermeldung, funktionier, funktioniert, inhalt, keine fehlermeldung, lauter, problem, speicher, systeminfo, tmp, zeichen, zeichentausch |