Supportnet / Forum / Anwendungen(Java,C++...)
TXTdateien in verzeichniss mit bstätigung löschen
Frage
Hallo
Habn problem,
was is´n hier falsch?
[code]
@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
[/code]
also ich hab nich soviel erfahrung, daher kann es etwas programmierpsrachenmäßig aussehen. Geht das überhaupt?
mfg
TByte
Antwort 1 von Ralfman
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
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
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
Variablen setz Du mit set.
Tipp in der DOS-BOX einfach mal set /?
Ralf
Tipp in der DOS-BOX einfach mal set /?
Ralf
Antwort 4 von TByte
hab ich doch, aber es klappt nicht, was ist da oben den falsch?
Antwort 5 von Ralfman
So würde ich das machen:
Der Choice von dem Link funzt nicht, aber Du hast Post von mir...
Ralf
@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
danke ralfman.
aber was macht denn die choise funktion genau, welche parameter könne übergeben werden, usw....?
aber was macht denn die choise funktion genau, welche parameter könne übergeben werden, usw....?
Antwort 7 von Ralfman
Kopier Choice einfach in Dein Windows verzeichnis, und Tipp in der DOS-BOX einfach mal Choice /? ein.
Ralf
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 fr 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 bercksichtigt.
/T[:]c,nn Die Standardauswahl fr c nach nn Sekunden.
Text Eingabeaufforderung, die angezeigt wird.
ERRORLEVEL nimmt den Offset-Wert der vom Benutzer gedrckten Optionstaste an.
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 fr 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 bercksichtigt.
/T[:]c,nn Die Standardauswahl fr c nach nn Sekunden.
Text Eingabeaufforderung, die angezeigt wird.
ERRORLEVEL nimmt den Offset-Wert der vom Benutzer gedrckten Optionstaste an.
Ralf
Antwort 8 von TByte
danke
gleichmal nochne frage:
mit
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
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
Auch dazu würde Dir die Eingabe if /? in der DOS-BOX schon weitergeholfen haben, und Du bräuchtest nicht Fragen...
Ralf
if not exist Pfad\Datei
Ralf
Antwort 10 von TByte
einfach nur ein
naja, ich wusst nicht, ob ich unter
mfg
TByte
not
reicht? cool, danke.naja, ich wusst nicht, ob ich unter
if
oder unter exist
nachgucken sollte.mfg
TByte
Antwort 11 von TByte
nochn problem:
Ich habs jetzt ein bisschen verarscht hingeschrieben, es klappt aber nicht. ralfman, deine version klappt auch nicht!:
was ist hier falsch?
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
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
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
Ändere die Coice Zeile mal Bitte so ab:
Und der Text wird Leserlicher durch:
Selbstverständlich kannst Du den Text auch noch auseinander schieben in dem Du echo anweist eine leerzeile zu chreiben mit:
Ralf
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
Hallo.
Klappt immernoch nicht:
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
Kann ja auch nicht Funktionieren.
Falsch:
Richtig:
Ralf
Falsch:
Choice /C: jnb Bitte wählen
Richtig:
Choice /C:jnb Bitte wählen
Ralf
Antwort 16 von Ralfman
Außerdem
Falsch:
Richtig:
Reihenfolge Beachten!!!
Ralf
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
Hast Du Dir meine Antworten 12 und 13 eigendlich Durchgelesen?
Das waren nicht nur Verbesserungsvorschläge, sondern in erster Linie fehlerbeseitigungen.
Ralf
Das waren nicht nur Verbesserungsvorschläge, sondern in erster Linie fehlerbeseitigungen.
Ralf
Antwort 18 von Ralfman
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
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
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
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
Ich schau mogen mal 'drüber. für heute ist erst mal Feierabend.
Ralf
Ralf
Antwort 21 von Ralfman
Ich habs ausprobiert (obwohl ich immer noch nicht begreife wann Du den Script sinvoll einsetzen möchtest, zu übungszwecken und zum Lernen - Verstehen ists OK), und es Funktioniert so:
nun mußt Du nur noch die Umlaute anpassen, wie das geht, weist Du ja inzwischen.
Ralf
@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:jbn Bitte wählen
If Errorlevel 3 goto ende
If Errorlevel 2 goto behalten
If Errorlevel 1 goto loeschen
: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
nun mußt Du nur noch die Umlaute anpassen, wie das geht, weist Du ja inzwischen.
Ralf
Antwort 22 von TByte
Juhu danke, es klappt!
Und mit dem anderen Textdatei ersteller ergänzen sich die beiden gut ;-)
Der Vorteil von Batch-dateien ist, dass sie nicht kompiliert werden müssen. Aus meinen anderen Threads kann man entnehmen, dass ichs nicht so mit compilern hab.
-------
Ich halt mir den Thread offen, falls noch welche Fragen dazu auftauchen
PS.:Damit kann man auch tolle Spiele machen ;-)
Und mit dem anderen Textdatei ersteller ergänzen sich die beiden gut ;-)
Der Vorteil von Batch-dateien ist, dass sie nicht kompiliert werden müssen. Aus meinen anderen Threads kann man entnehmen, dass ichs nicht so mit compilern hab.
-------
Ich halt mir den Thread offen, falls noch welche Fragen dazu auftauchen
PS.:Damit kann man auch tolle Spiele machen ;-)