136298
Goto Top

Auslesen und umbenennen einer txt per batch

hallo zusammen
kann man mit einer batch eine vorhandene txt deren inhalt aus einer zahl besteht auslesen und neu speichern?

flag.txt (49)
49.txt oder 049.txt oder 0049.txt

Content-Key: 375302

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

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: Pjordorf
Pjordorf 28.05.2018 um 11:51:07 Uhr
Goto Top
Hallo,

Zitat von @136298:
kann man mit einer batch eine vorhandene txt deren inhalt aus einer zahl besteht auslesen und neu speichern?
Klar geht das.

Gruß,
Peter
Mitglied: 77559
Lösung 77559 28.05.2018 aktualisiert um 12:22:48 Uhr
Goto Top
@Echo off
set /p "flag="<flag.txt  
>"%flag%.txt" echo(%flag%  

Gruß
LotPings
Mitglied: 136166
Lösung 136166 28.05.2018 aktualisiert um 13:29:32 Uhr
Goto Top
Und mit führenden Nullen
@echo off
set /p "flag="<flag.txt  
set "flag=000%flag%"  
>>"%flag:~-4%.txt" echo(%flag%  
oder Powershell
rename-item 'c:\test.txt' -NewName "$((gc 'c:\test.txt' -TotalCount1)).txt"  
Usw, ...
Mitglied: 136298
136298 28.05.2018 um 19:32:37 Uhr
Goto Top
hi,
das funktioniert aber nur wenn txt und batch in einem ordner liegen!
wie funktioniert das ganze denn mit zuordnung (pfad) eines laufwerkes?

gibt es irgendwo eine brauchbare anleitung für laien?
Mitglied: 136166
Lösung 136166 28.05.2018 aktualisiert um 22:59:55 Uhr
Goto Top
We> Zitat von @136298:

hi,
das funktioniert aber nur wenn txt und batch in einem ordner liegen!
wie funktioniert das ganze denn mit zuordnung (pfad) eines laufwerkes?
Na einfach den Pfad mit angeben ...
@echo off
set /p "flag="<c:\ordner\flag.txt  
set "flag=000%flag%"  
>>"C:\ordner\%flag:~-4%.txt" echo(%flag%  
gibt es irgendwo eine brauchbare anleitung für laien?
"Batch Tutorial" bei Google rein schmeissen...
Mitglied: 136298
136298 28.05.2018 um 22:57:23 Uhr
Goto Top
Zitat von @136166:
Na einfach den Pfad mit angeben ...

hahaha,
du arbeitest vermutlich schon jahre damit und ich nutze das vielleicht einmal im jahr zum kopieren oder löschen mit einem einzeiligen befehl!

wenn ich jetzt vor hätte mehrere aufgaben in einer batch ausführen zu lassen müsste ich die einzelne aufgaben nicht erst beenden bevor ich
mit der nächsten aufgabe anfange oder kann ich das so fortführen?

warum hast du einmal:
@echo off und beim nächsten mal echo off geschrieben?

kannst du mir deine 4 zeilen einmal für anfänger erklären?

vielen dank im voraus für die mühe
claushendrik
Mitglied: 136166
136166 28.05.2018 aktualisiert um 23:13:02 Uhr
Goto Top
Zitat von @136298:
wenn ich jetzt vor hätte mehrere aufgaben in einer batch ausführen zu lassen müsste ich die einzelne aufgaben nicht erst beenden bevor ich
mit der nächsten aufgabe anfange oder kann ich das so fortführen?
??
Du kannst selbst verständlich mehrere Dinge in deiner Batch machen.
warum hast du einmal:
@echo off und beim nächsten mal echo off geschrieben?
War ein Tippfehler.
kannst du mir deine 4 zeilen einmal für anfänger erklären?


Schaltet die Befehlsausgabe aus
@echo off

Ließt die erste Zeile der Textdatei in die Variable flag
set /p "flag="<c:\ordner\flag.txt

Packt in die Variable flag noch ein paar Nullen davor
set "flag=000%flag%"

Schreibt die Nummer in die neue Datei mit der Nummer als Namen. Das %flag:~-4% bedeutet :nehme von der Variablen flag immer die letzten vier Zeichen.
>>"C:\ordner\%flag:~-4%.txt" echo(%flag%

Bei bspw. Nummer 4 wird's zu 0004, bei 27 zu 0027, und 305 zu 0305, also immer 4 Zeichen von rechts.

Die Möglichkeiten der Stringmanipulationen kannst du hier nachlesen
https://www.dostips.com/DtTipsStringManipulation.php