online 1
gast (50)

/ Forum / Anwendungen(Java,C++...)

Anwendungen(Java,C++...)Anwendungen(Java,C++...)

Fragevon TByte vom 18.03.2020, 18:22 Options

TXTdateien in verzeichniss mit bstätigung löschen

Hallo
Habn problem,
was is´n hier falsch?


@echo off
Color 1F
echo Alle Textdateien werden jetzt in diesem Verzeichniss UNWIEDERRUFLICH gelöscht!
echo Wenn sie damit einverstanden sind, drücken sie y, wenn nicht, dann n
set eingabe
echo y | eingabe=löschen
echo n | eingabe=behalten
pause>nul

if eingabe=löschen (
goto löschen
)

if eingabe=behalten (
goto behalten
)

:löschen
del *.txt /f /q
echo Löschvorgang
echo Alle Textdateien wurden erfolgreich gelöscht! Taste drücken
pause>nul
goto ende

:behalten
echo Ok, nicht löschen
echo Druecken sie einfach eine beliebige Taste :-(
pause>nul

:ende
echo Nochmal Taste drücken
pause>nul


also ich hab nich soviel erfahrung, daher kann es etwas programmierpsrachenmäßig aussehen. Geht das überhaupt?
mfg
TByte


Antwort schreiben

Antwort 1 von Ralfman vom 18.03.2020, 18:34 Options

Hi TByte,
ich würde das mit dem guten alten choice Befehl machen den es seit Windows 2000 nicht mehr zusammen mit dem Betriebssysteb gibt.
Aber hier bekommst Du den zum Downloaden.
Wenn Du schwierigkeiten hast, schreib mir doch einfach 'ne mail.

Ralf

Antwort 2 von TByte vom 18.03.2020, 18:39 Options

aba is das allgemein denn möglich? so wie in c++ eine variable später zuweisen? oder gibt es else befehle?

Antwort 3 von Ralfman vom 18.03.2020, 18:49 Options

Variablen setz Du mit set.
Tipp in der DOS-BOX einfach mal set /?

Ralf

Antwort 4 von TByte vom 18.03.2020, 18:57 Options

hab ich doch, aber es klappt nicht, was ist da oben den falsch?

Antwort 5 von Ralfman vom 18.03.2020, 19:32 Options

So würde ich das machen:
@echo off
Color 1F
echo.
echo Alle Textdateien werden jetzt in diesem Verzeichniss UNWIEDERRUFLICH gelöscht!
echo Drücken Sie die gewünschte Option.
echo.
echo.
echo           Option    1    um nichts zu löschen
echo.
echo           Option    2    Um alle textdateien zu löschen
echo.
echo.
choice /c:12 /N Bitte eine Option w„hlen:
if errorlevel 2 goto löschen
if errorlevel 1 goto behalten

:löschen
del *.txt /f /q
echo.
echo.
echo Der Löschvorgang wird eingeleitet
echo.
echo.
echo Alle Textdateien wurden erfolgreich gelöscht! Taste drücken
echo.
echo.
pause
goto ende

:behalten
echo.
echo.
echo Ok, nicht löschen
echo.
echo.
echo Druecken sie einfach eine beliebige Taste :-(
echo.
echo.
pause

:ende
exit


Der Choice von dem Link funzt nicht, aber Du hast Post von mir...

Ralf

Antwort 6 von TByte vom 18.03.2020, 19:38 Options

danke ralfman.
aber was macht denn die choise funktion genau, welche parameter könne übergeben werden, usw....?

Antwort 7 von Ralfman vom 18.03.2020, 19:42 Options

Kopier Choice einfach in Dein Windows verzeichnis, und Tipp in der DOS-BOX einfach mal Choice /? ein.

Zitat:

Fordert den Benutzer zur Auswahl von mehreren m”glichen Optionen auf.

CHOICE [/C[:]Optionen] [/N] [/S] [/T[:]c,nn] [Text]

/C[:]Optionen Zul„ssige Tasten fr die Optionen. Standard ist JN.
/N Die Eingabeaufforderung endet nicht mit der Angabe der
Optionstasten und dem Fragezeichen.
/S Bei der Eingabe wird Groá- und Kleinschreibung bercksichtigt.
/T[:]c,nn Die Standardauswahl fr c nach nn Sekunden.
Text Eingabeaufforderung, die angezeigt wird.

ERRORLEVEL nimmt den Offset-Wert der vom Benutzer gedrckten Optionstaste an.


Ralf

Antwort 8 von TByte vom 18.03.2020, 20:02 Options

danke
gleichmal nochne frage:
mit

if exist %irgendwas.irgendwas

kann man ja die Existenz auf etwas prüfen. Wie kann man denn prüfen, ob eine Datei NICHT da ist? Also wenn jemand sich jemand für löschen entscheidet und die datei nicht da ist kommt irgendweine UNSCHÖNE fehlermeldung. Daher irgendwie erstmal prüfen, ob *.txt-dateien überhaupt da sind!
mfg
TByte

Antwort 9 von Ralfman vom 18.03.2020, 20:16 Options

Auch dazu würde Dir die Eingabe if /? in der DOS-BOX schon weitergeholfen haben, und Du bräuchtest nicht Fragen...
if not exist Pfad\Datei


Ralf

Antwort 10 von TByte vom 18.03.2020, 20:42 Options

einfach nur ein
not
reicht? cool, danke.
naja, ich wusst nicht, ob ich unter
if
oder unter
exist
nachgucken sollte.
mfg
TByte

Antwort 11 von TByte vom 18.03.2020, 21:12 Options

nochn problem:
Ich habs jetzt ein bisschen verarscht hingeschrieben, es klappt aber nicht. ralfman, deine version klappt auch nicht!:

@echo off
Color 1F
echo Alle Textdateien werden jetzt in diesem Verzeichniss UNWIEDERRUFLICH gelöscht!
echo Wenn sie damit einverstanden sind, drücken sie j, wenn nicht, dann n.
echo Zum beenden drücken b.

Choice /C: jnb
If Errorlevel 1 goto loeschen
If Errorlevel 2 goto behalten
If Errorlevel 3 goto ende

:loeschen
If not exist *.txt (
echo Die Datei existiert aber nicht, sie SCHWACHKOPF!, also erstellen sie erstmal
echo gefälligst eine!
echo Das Programm wird jetzt beendet, drücken dazu eine beliebige Taste.
pause>nul
goto ende
)
del *.txt /f /q
echo Löschvorgang...
echo Löschvorgang beendet.
echo DANKEDANKEDANKEDANKE!!!! ES MACHT SPASS, IHRE DATEIEN ZU LOESCHEN!!!
echo Alle Textdateien wurden erfolgreich gelöscht! Taste drücken, um zu beenden.
pause>nul
goto ende

:behalten
echo WARUM?????? ICH HASSE SIE!!!!!! ICH WOLLTE IHRE TEXTDATEIEN LÖSCHEN!!!
echo Aber wenn sie wollen, dann druecken sie einfach eine beliebige Taste :-(
pause>nul

:ende
exit


was ist hier falsch?

Antwort 12 von Ralfman vom 18.03.2020, 22:14 Options

Was mir sofort auffält, ist der Errorlevel.
Der wird von oben nach unten Abgefragt, in Deinem Beispiel ist das Umgekehrt.
So hatte ich Dir das nicht geschrieben. Also wenn es nicht Funktioniert. solltest Du Dich auf Fehleranalyse begeben, die Hile zu den einzelnen Befehlen Durchlesen, und wenn Du nicht weiterkommst Fragen.
Morgen mehr.

Ralf

Antwort 13 von Ralfman vom 19.03.2020, 10:07 Options

Ändere die Coice Zeile mal Bitte so ab:
Choice /C:jnb Bitte Option wählen
If Errorlevel 3 goto ende
If Errorlevel 2 goto behalten
If Errorlevel 1 goto loeschen

Und der Text wird Leserlicher durch:
echo Wenn sie damit einverstanden sind, drücken Sie j,
echo Wenn Sie nicht einverstanden sind, drücken Sie n,
echo Zum beenden drücken Sie b.

Selbstverständlich kannst Du den Text auch noch auseinander schieben in dem Du echo anweist eine leerzeile zu chreiben mit:
echo.


Ralf

Antwort 14 von TByte vom 19.03.2020, 18:29 Options

Hallo.
Klappt immernoch nicht:


@echo off
Color 1F
echo Alle Textdateien werden jetzt in diesem Verzeichniss UNWIEDERRUFLICH gelöscht!
echo Wenn sie damit einverstanden sind, drücken sie j.
echo Wenn nicht, dann drücken sie n.
echo Zum beenden drücken b.

Choice /C: jnb Bitte wählen
If Errorlevel 1 goto loeschen
If Errorlevel 2 goto behalten
If Errorlevel 3 goto ende

:loeschen
If not exist *.txt (
echo Die Datei existiert aber nicht, sie SCHWACHKOPF!, also erstellen sie erstmal
echo gefälligst eine!
echo Das Programm wird jetzt beendet, drücken dazu eine beliebige Taste.
pause>nul
goto ende
)
del *.txt /f /q
echo Löschvorgang...
echo Löschvorgang beendet.
echo DANKEDANKEDANKEDANKE!!!! ES MACHT SPASS, IHRE DATEIEN ZU LOESCHEN!!!
echo Alle Textdateien wurden erfolgreich gelöscht! Taste drücken, um zu beenden.
pause>nul
goto ende

:behalten
echo WARUM?????? ICH HASSE SIE!!!!!! ICH WOLLTE IHRE TEXTDATEIEN LÖSCHEN!!!
echo Aber wenn sie wollen, dann druecken sie einfach eine beliebige Taste :-(
pause>nul

:ende
exit

Antwort 15 von Ralfman vom 19.03.2020, 21:23 Options

Kann ja auch nicht Funktionieren.
Falsch:
Choice /C: jnb Bitte wählen

Richtig:
Choice /C:jnb Bitte wählen


Ralf

Antwort 16 von Ralfman vom 19.03.2020, 21:25 Options

Außerdem
Falsch:
If Errorlevel 1 goto loeschen
If Errorlevel 2 goto behalten
If Errorlevel 3 goto ende

Richtig:
If Errorlevel 3 goto ende
If Errorlevel 2 goto behalten
If Errorlevel 1 goto loeschen


Reihenfolge Beachten!!!

Ralf

Antwort 17 von Ralfman vom 19.03.2020, 21:27 Options

Hast Du Dir meine Antworten 12 und 13 eigendlich Durchgelesen?
Das waren nicht nur Verbesserungsvorschläge, sondern in erster Linie fehlerbeseitigungen.

Ralf

Antwort 18 von Ralfman vom 19.03.2020, 22:08 Options

Was Du allerdings schön geregelt, und Anscheinend auch schnell Begrigffen hast, ist die :löschen Geschichte.
Ich Persönlich hätte aus lauter Faulheit noch eine zusätzliche if Abfrage eingebaut, aber so wie Du das gemacht hast ist das schon viel Eleganter.

Ralf

Antwort 19 von TByte vom 19.03.2020, 22:11 Options

Hallo ralfman
Ja habs mir durchgelesen, hat aber ja nicht geklappt!
Jetzt auch nicht! egal wierum ich es drehe, die errorlevel, es will einfach nicht gehen. Seit #15 erscheint wenigstens was, aber die kommenden Antworten sind jetzt so extrem vermisxht, wenn ich j drücke kommt das ergebniss für nein und umgekehrt, egal wierum ich die Errorlevele drehe!
mfg
TByte

Antwort 20 von Ralfman vom 19.03.2020, 22:45 Options

Ich schau mogen mal 'drüber. für heute ist erst mal Feierabend.

Ralf

Ähnliche Themen

Kann ich die Dateien unter TEMP löschen?
todo  18.02.2007 - 91 Hits - 1 Antwort

Vista Update & DNS-Einträge löschen
tlanger  29.06.2007 - 122 Hits -

Programme stürzen ab
fzs1000blau  15.01.2008 - 28 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026