132749
Goto Top

Fehler beim auslesen und neu speichern per Batch

Hallo,

ich habe da ein Phänomen was für mich nicht verständlich ist aber vielleicht schaut mal jemand rüber!
set /p "myName="<C:\myName.log  
set "myName=00%myName%"  
>>"C:\%myName:~-3%.log" echo(%myName%  

1. Nachdem loaden einer LOG Datei sollte die Batch die LOG auslesen und NEU speichern.
Hier ist mir aufgefallen, dass der LOG Inhalt nicht gleich der Name ist wie gewünscht!

Beispiel:
- Die LOG die geloadet wurde enthält die Zahl 960
- Nachdem ausführen der Batch enthält die LOG die Zahl 00960 und der LOG Name lautet 60 .log! Wo ist die 9 geblieben und warum habe ich eine Leerzeile?

2. Erstelle ich manuell die LOG Datei und lasse die Batch laufen dann stimmt das Ergebnis! Hmm, wo liegt der Hund begraben?

Content-Key: 376733

Url: https://administrator.de/contentid/376733

Printed on: April 16, 2024 at 05:04 o'clock

Member: rubberman
rubberman Jun 11, 2018 at 16:07:56 (UTC)
Goto Top
Klingt eher so als enthält deine Datei nicht "960" sondern "960 " (beachte das Leerzeichen).

Steffen
Mitglied: 132749
132749 Jun 11, 2018 at 16:18:24 (UTC)
Goto Top
Hallo rubberman,
das musste ich soeben auch feststellen aber wie werde ich jetzt das Leerzeichen wieder los damit ich zum richtigen Ergebnis komme?
(Ist mir zuerst nicht aufgefallen da der Cursor vor der 9 Stand!)
Member: rubberman
Solution rubberman Jun 11, 2018 at 16:26:18 (UTC)
Goto Top
Falls du nur eine Zeile in der Datei hast, dann gleich per FOR /F
for /f "usebackq" %%i in ("C:\myName.log") do set "myName=%%i"
Anderenfalls liest du die erste Zeile wie gehabt mit SET /P und gehst anschließend mit der Schleife drüber
for /f %%i in ("%myName%") do set "myName=%%i"
oder (sofern keine vorangestellten Nullen vorhanden sein können) nutze SET /A
set /a "myName=myName"

Steffen