-
19. 12. 2009, 15:05 #1Mitglied
- Registriert seit
- Dec 2009
- Beiträge
- 6
dos: umbennen, wenn Datei existiert?
Hallo,
Ich habe eine kleine bat-datei gemacht, in welcher der befehl ipconfig /all>IP.txt vorkommt. Das klappt auch wunderbar, also nach dem ausführen habe ich die datei IP.txt, nun hätte ich es jedoch gern das sich der name ändert wenn die datei bereits existiert z.b. in IP2.txt oder so. Ich habe schon ne weile im netz gesucht und dann als vorhergehenden befehl folgendes einggeben: if exist ip.txt ren ip.txt ipALT.txtauch das geht aber halt nur einmal. Ich hoffe ihr versteht mein Problem und könnt mir helfen, habe heute erst angefangen mit batch.
MfG
pate
-
20. 12. 2009, 21:54 #2
Re: dos: umbennen, wenn Datei existiert?
Streng genommen, hat das hier mit DOS nicht viel zu tuen - auch wenn M$ auch nach knap 20 Jahren keinen funktionstechnisch besseren Befehlsinterpreter zu Stande gebracht hat, gehört ipconfig immer noch ins Windows NT Universum.

Zum Thema - Ich würde einfach mal mit Variblen arbeiten.
Mit "set dname=1" ordnest du der Variabel dname den Wert 1 zu, dann kannst du mit "set /a dname=%dname%+1" eins höher zählen, falls die Datei schon vorhanden ist oder dann halt mit "ipconfig /all>%dname%.txt" schreiben - Dann hast du halt 1.txt, 2.txt usw.
Wobei es je nach Situation / Verwendungszweck auch sinnig seien könnte, einfach Datum & Uhrezeit einzusetzen.
-
21. 12. 2009, 23:16 #3Mitglied
(Threadstarter)
- Registriert seit
- Dec 2009
- Beiträge
- 6
Re: dos: umbennen, wenn Datei existiert?
danke für die antwort
MfG
pateGeändert von der-pate89 (23. 12. 2009 um 22:38 Uhr) Grund: zum glück noch nicht zu
-
23. 12. 2009, 22:50 #4Mitglied
(Threadstarter)
- Registriert seit
- Dec 2009
- Beiträge
- 6
Re: dos: umbennen, wenn Datei existiert?
hi,
eig dachte ich es wäre erledigt, ist es aber doch noch nicht
Ich habe mir mittlerweile diesen code zusammen gebastelt:
hier würde ja jetzt kommen als erste txt: MAX_01.01.2010.txt und als zweite: MAX_01.01.2010_1.txtCode:@echo off title IP Protokoll by echo IP Protokollierung by echo ===================================== echo Um die IP zu speichern bitte eine Taste druecken pause>nul set dname=%USERNAME%__%DATE% if exist %dname%.txt goto Dateida if not exist %dname%.txt goto Dateinda :Dateida @echo off echo. echo Datei existiert bereits echo. echo Soll die Datei ersetzt werden? set /P x=(J)a oder (U)mbenennen if /I "%x%"=="J" goto :Dateinda if /I "%x%"=="U" goto :antwort2 if errorlevel 1 goto :dumm :dumm echo Bitte waehlen Sie eine Antwort! goto :Dateida :antwort2 for /l %%z in (1, 1, 1) do set dname=%USERNAME%_%DATE%_%%z goto :fertig :fertig echo Die Datei wurde unter einem neuen Namen gespeichert goto :befehl :Dateinda @echo off echo. echo Datei wird erstellt :befehl ipconfig /all>%dname%.txt pause>nul
aber wie kann ich dafür sorgen das immer weiter gezählt wird?
Würde mich über ne weitere Antwort freuen
MfG
pate
-
24. 12. 2009, 02:36 #5
Re: dos: umbennen, wenn Datei existiert?
Ach du Kacke - mach doch auch so einer kleinen Problemstellung nicht so ein riesen Ding.

Code:@echo off title IP Logger echo Taste drücken! pause>nul set count=0 :pruefen set /a count=%count%+1 if exist %USERNAME%_%DATE%_%count%.txt goto pruefen ipconfig /all>%USERNAME%_%DATE%_%count%.txt
So hatte ich mir das gedacht.
Kann es grade nicht testen, da ich kein passendes OS habe, sollte aber funktionieren.
Deine Abfragen, mit umbennen oder ersetzten und so, kannste dir ja selber noch einbauen.
Geändert von Weltsadist (24. 12. 2009 um 03:08 Uhr)
-
24. 12. 2009, 10:19 #6Mitglied
(Threadstarter)
- Registriert seit
- Dec 2009
- Beiträge
- 6
Re: dos: umbennen, wenn Datei existiert?
Ja ich weiß, der code ist etwas länger geworden als ich eig. wollte, aber wie gesagt ich fange gerade erst an und hab einfach mal verschiedene tuts zusammen geworfen

Danke dein Code klappt prima, den werde ich jetzt mal mit einarbeiten. Kennst du vielleicht noch ein leichtverständliches tut für diese FOR-Schleifen da komm ich noch nicht so ganz dahinter
MfG
pate
-
24. 12. 2009, 17:32 #7
Re: dos: umbennen, wenn Datei existiert?
"Das ist ein besonderer Programmierbefehl für Batchdateien. Sogar in Büchern die ich über Batchdatei-Programmierung geschrieben habe, ist es mir schwer gefallen zu erklären, was dieser Befehl macht. Vergessen sie ihn am besten." - Dan Gookin in 'DOS für Dummies' - zweite Auflage.
Zitat von der-pate89

So kompliziert ist es garnicht. Zugegeben - ich muste mir hier auch erst alte Fachliteratur rauskrammen.
for %%variable in (werteberreich) do befehl
Das wäre der Grundaufbau. Wobei die variable aus einem (einzigen) Zeichen besteht, der werteberreich zB. eine Aufzählung von Dateien o.ä. - auch mit Verwendung von Wildcards enthalten kann & befehl bei jedem Scheifendurchlauf ausgeführt wird und die variable enthalten kann.
Das ist im Prinzip alles, wobei die Funktionsweise mit unterschiedlicher Parametrierung beinflust werden kann.
Mit dem /L legst du zB. fest, dass du mit einer Laufvariable arbeiten willst:
for /L %%variable in (X, X, X) do befehl
Der Werteberreich ist dann wie folgt aufgeteilt:
X = Startwert
X = Interval
X = Endwert
Deswegen funktioniert dein Skript auch nicht, da der Startwert dem Endwert entspricht.
-
25. 12. 2009, 10:58 #8Mitglied
(Threadstarter)
- Registriert seit
- Dec 2009
- Beiträge
- 6
Re: dos: umbennen, wenn Datei existiert?
Das war jetzt das erste mal das ich etwas über FOR gelesen und auch verstanden habe denke das könnte auch anderen "noobs" gefallen.
Vielen Dank nochmal für deine Hilfe, werde mich bestimmt (bald) wieder melden.
MfG
Pate
-


Zitieren
mehr lesen...







"Wir können nichts dazu" -...
Gestern, 21:23 in gulli:news