Batch - Wenn nichts geschrieben dann aktualisieren
Hi Community ,
Vorneweg:
Ich habe hier im Fourm schon viele Fragen nachgeschaut.
Es ist echt sehr hilfreich hier und es ist echt gut das einem immer geholfen wird.
Nun habe ich aber eine Frage die (hoffentlich) noch nicht beantwortet wurde.
Und zwar habe ich folgendes Problem:
Ich will das wenn man "nichts" (nicht das Wort nichts) bei dieser Benutzereingabe:
set /p var="nichts"
eingibt das eine Aktion ausgeführt wird.
Es soll jede Sekunde überprüft werden ob etwas eingegeben wurde.
Also wenn Batch warten soll macht man das ja mit :
ping -n 2 127.0.0.1>nul
das weiß ich schon. Nur wie verbindet man das?
Oder wird das anders gemacht?
Ist das mit batch überhaupt möglich?
Ich hoffe es war verständlich.
Danke schonmal für die Hilfe
MFG
Retschef
Vorneweg:
Ich habe hier im Fourm schon viele Fragen nachgeschaut.
Es ist echt sehr hilfreich hier und es ist echt gut das einem immer geholfen wird.
Nun habe ich aber eine Frage die (hoffentlich) noch nicht beantwortet wurde.
Und zwar habe ich folgendes Problem:
Ich will das wenn man "nichts" (nicht das Wort nichts) bei dieser Benutzereingabe:
set /p var="nichts"
eingibt das eine Aktion ausgeführt wird.
Es soll jede Sekunde überprüft werden ob etwas eingegeben wurde.
Also wenn Batch warten soll macht man das ja mit :
ping -n 2 127.0.0.1>nul
das weiß ich schon. Nur wie verbindet man das?
Oder wird das anders gemacht?
Ist das mit batch überhaupt möglich?
Ich hoffe es war verständlich.
Danke schonmal für die Hilfe
MFG
Retschef
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 142845
Url: https://administrator.de/forum/batch-wenn-nichts-geschrieben-dann-aktualisieren-142845.html
Ausgedruckt am: 23.05.2025 um 09:05 Uhr
14 Kommentare
Neuester Kommentar

Servus,
ich verstehe deine Frage nicht so ganz, denn /p wartet doch eh, bis etwas mit einem abschliessenden Return eingegeben wurde.
Das 1 sekunde "warten" ist also eher - wenn ich dich richtig verstanden habe - sinnbefefreit.
Gruß
ich verstehe deine Frage nicht so ganz, denn /p wartet doch eh, bis etwas mit einem abschliessenden Return eingegeben wurde.
Das 1 sekunde "warten" ist also eher - wenn ich dich richtig verstanden habe - sinnbefefreit.
:var
set /p var="nichts"
if "%var%" == "" goto var
Gruß
Hallo Retschef und willkommen im Forum (und natürlich: Hi Timo und rubberman)!
Auch ich würde es für sinnvoll halten, Dein Vorhaben etwas ausführlicher zu beschreiben ...
Bis dahin noch eine andere, allerdings noch weiter eingeschränkte und auch nicht so richtig hybsche Möglichkeit: eine VBS-Krücke der Art
(Eigentlich einziger) Vorteil dieser Variante wäre, dass Du mit Bordmitteln auskommen kannst ...
Grüße
bastla
Auch ich würde es für sinnvoll halten, Dein Vorhaben etwas ausführlicher zu beschreiben ...
Bis dahin noch eine andere, allerdings noch weiter eingeschränkte und auch nicht so richtig hybsche Möglichkeit: eine VBS-Krücke der Art
@echo off & setlocal
set G=%temp%\GetAnswer.vbs
>%G% echo WScript.Echo WScript.CreateObject("WScript.Shell").Popup("Soll die ...-Aktion ausgeführt werden?",2,"Ihre Entscheidung",vbYesNo+vbQuestion)
for /f %%i in ('cscript //nologo %G%') do set Wahl=%%i
if %Wahl%==-1 echo Keine Antwort ist auch eine Antwort ...
if %Wahl%==6 echo OK, machen wir's ...
if %Wahl%==7 echo Na gut, dann nicht ...
Grüße
bastla

Hallo Retschef.
Auch von mir ein Willkommen im Forum.
Solange nicht von anderer Seite ebenfalls etwas in die Datei geschrieben wird,
macht doch der Refresh keinen Sinn solange du auf einen User Input wartest?
Wie der Name Batch schon sagt ist das für die stapelweise Bearbeitung gedacht,
nicht um interaktive Dinge zu steuern.
Gruß
LotPings
Auch von mir ein Willkommen im Forum.
Solange nicht von anderer Seite ebenfalls etwas in die Datei geschrieben wird,
macht doch der Refresh keinen Sinn solange du auf einen User Input wartest?
Wie der Name Batch schon sagt ist das für die stapelweise Bearbeitung gedacht,
nicht um interaktive Dinge zu steuern.
Gruß
LotPings
Hallo @all!
So, wie sich das entwickelt, würde ich es mit 2 Batches versuchen (bei den heutigen Bildschirmgrößen passen die beiden Fenster vermutlich auch schön nebeneinander
):
und
Für das Beenden muss ja wohl nicht groß vorgesorgt werden ...
Grüße
bastla
So, wie sich das entwickelt, würde ich es mit 2 Batches versuchen (bei den heutigen Bildschirmgrößen passen die beiden Fenster vermutlich auch schön nebeneinander
::Anzeigen.cmd
@echo off & setlocal
:Loop
cls
type \\MEIN-PC\Ordner1\Textdatei.txt 2>nul
ping -n 2 localhost>nul
goto :Loop
::Eingabe.cmd
@echo off & setlocal
start Anzeigen
:Loop
set "var="
set /p var=Eingabe:
if defined var >>\\MEIN-PC\Ordner1\Textdatei.txt echo %var%
goto :Loop
Grüße
bastla
Hallo zusammen,
in leichter Abwandlung könnte man auch Leerzeilen erzeugen.
Zeile 7 der Eingabe.cmd:
Der Punkt machts.
Sollten die Fenster doch zu groß werden, lassen sie sich durch
mode con cols=X lines=Y
in Anzahl der Spalten (X) und Zeilen (Y) begrenzen.
Grüße
rubberman
in leichter Abwandlung könnte man auch Leerzeilen erzeugen.
Zeile 7 der Eingabe.cmd:
>>\\MEIN-PC\Ordner1\Textdatei.txt echo.%var%
Sollten die Fenster doch zu groß werden, lassen sie sich durch
mode con cols=X lines=Y
in Anzahl der Spalten (X) und Zeilen (Y) begrenzen.
Grüße
rubberman
Hallo Retschef!
Die Zeilen 5 bis 7 sollen bewirken, dass bei einer "leeren" Eingabe (also nur "Enter" gedrückt) nicht die vorherige Zeile wiederholt (dazu wird die Variable %var% in Zeile 5 gelöscht) und auch keine Leerzeile geschrieben wird (dazu die Überprüfung mit "
Grüße
bastla
Die Zeilen 5 bis 7 sollen bewirken, dass bei einer "leeren" Eingabe (also nur "Enter" gedrückt) nicht die vorherige Zeile wiederholt (dazu wird die Variable %var% in Zeile 5 gelöscht) und auch keine Leerzeile geschrieben wird (dazu die Überprüfung mit "
if defined
") - die Möglichkeit, durch eine solche "leere" Eingabe eine Leerzeile zu erzeugen, hat rubberman ja schon gezeigt.Grüße
bastla