Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch - Wenn nichts geschrieben dann aktualisieren

Frage Entwicklung Batch & Shell

Mitglied: Retschef

Retschef (Level 1) - Jetzt verbinden

14.05.2010 um 17:54 Uhr, 3349 Aufrufe, 14 Kommentare

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

Mit freundlichen Grüßen
Retschef
Mitglied: 60730
14.05.2010 um 18:04 Uhr
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.

01.
:var 
02.
set /p var="nichts" 
03.
if  "%var%" == "" goto var
Gruß
Bitte warten ..
Mitglied: rubberman
14.05.2010 um 18:05 Uhr
Hallo Retschef,

willkommen im Forum.

SET /P wartet auf eine Benutzereingabe, in der Zwischenzeit läuf der Batch nicht weiter. Das bedeutet, so einfach wird das nicht. Erkläre doch mal, was du damit vorhast. Mglw. gibt es eine andere Alternative.


Grüße
rubberman
Bitte warten ..
Mitglied: Retschef
14.05.2010 um 18:11 Uhr
Hi,

Habe ich mich wohl nicht gut ausgedrückt.^^

Gut, ich wollte eben das es NICHT unendlich wartet sondern nach 2 sekunden merkt das nichts eingegeben wurde.
Dann soll es eine Aktion ausführen.

Aber anscheinend geht das mit diesem code nicht.
Hoffe ihr habt jetzt verstanden was ich meine.

-"Mglw. gibt es eine andere Alternative."
Ich hoffe doch.

Mit freundlichen Grüßen
Retschef
Bitte warten ..
Mitglied: rubberman
14.05.2010 um 18:18 Uhr
Hallo Retschef,

da leider immer noch nicht klar ist, WOZU du so etwas benötigst, kann ich vorerst nur den CHOICE - Befehl in den Raum werfen. Hier kannst du einen Defaultwert festlegen, der nach einer bestimmten Wartezeit übernommen wird. Geht aber nur mit einem einzelnen Character.

Grüße
rubberman
Bitte warten ..
Mitglied: bastla
14.05.2010 um 18:31 Uhr
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
01.
@echo off & setlocal 
02.
set G=%temp%\GetAnswer.vbs 
03.
>%G% echo WScript.Echo WScript.CreateObject("WScript.Shell").Popup("Soll die ...-Aktion ausgeführt werden?",2,"Ihre Entscheidung",vbYesNo+vbQuestion) 
04.
for /f %%i in ('cscript //nologo %G%') do set Wahl=%%i 
05.
if %Wahl%==-1 echo Keine Antwort ist auch eine Antwort ... 
06.
if %Wahl%==6 echo OK, machen wir's ... 
07.
if %Wahl%==7 echo Na gut, dann nicht ...
(Eigentlich einziger) Vorteil dieser Variante wäre, dass Du mit Bordmitteln auskommen kannst ...

Grüße
bastla
Bitte warten ..
Mitglied: Retschef
14.05.2010 um 19:01 Uhr
Also gut ich versuchs nochmal diesmal vlt. mit etwas mehr Kontext ^^

Es soll so laufen:

1. Ich schreibe etwas mit dem "set /p" in die Batch.
2. Dies wird dann mit "echo >>" in eine Textdatei geschrieben.
3. Dann soll der Text der in der Textdatei steht (wurde ja bei 2. in diese Datei geschrieben) wieder in der Batch erscheinen.

Das mache ich mit "type".

Sieht dann ungefähr so aus:

set /p var= Text
Echo var >> \\MEIN-PC\Ordner1\Textdatei.txt
cls
type \\MEIN-PC\Ordner1\Textdatei.txt

Klappt auch alles ganz super.
Jetzt wird der Text mit "type" ja nur aktualisiert wenn ich das so durchlaufen lasse.

Nur jetzt will ich das der Text mit "type" aktualiesiert wird OHNE das ich etwas eingegeben habe.
Der Text soll sich alle 2 sekunden (oder andere Zeit) aktualiesieren.

Also im Prinzip alle 2 Sekunden soll "type \\MEIN-PC\Ordner1\Textdatei.txt" ausgeführt werden.
Wärend ich noch was schreiben kann, mit "set /p"

Mit freundlichen Grüßen
Retschef
Bitte warten ..
Mitglied: LotPings
14.05.2010 um 19:30 Uhr
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
Bitte warten ..
Mitglied: Retschef
14.05.2010 um 19:33 Uhr
hi,

"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?"

---Schon wenn ein zweiter gleichzeitig auf die Batch Datei zugreift.(z.B. von einem anderen Pc)

"Wie der Name Batch schon sagt ist das für die stapelweise Bearbeitung gedacht,
nicht um interaktive Dinge zu steuern."

---Heist das dass es nicht möglich ist?
Danke für die vielen Antworten!

Mit freundlichen Grüßen
Retschef
Bitte warten ..
Mitglied: bastla
14.05.2010 um 19:39 Uhr
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 ):
01.
::Anzeigen.cmd 
02.
@echo off & setlocal 
03.
:Loop 
04.
cls 
05.
type \\MEIN-PC\Ordner1\Textdatei.txt 2>nul 
06.
ping -n 2 localhost>nul 
07.
goto :Loop
und
01.
::Eingabe.cmd 
02.
@echo off & setlocal 
03.
start Anzeigen 
04.
:Loop 
05.
set "var=" 
06.
set /p var=Eingabe:  
07.
if defined var >>\\MEIN-PC\Ordner1\Textdatei.txt echo %var% 
08.
goto :Loop
Für das Beenden muss ja wohl nicht groß vorgesorgt werden ...

Grüße
bastla
Bitte warten ..
Mitglied: rubberman
14.05.2010 um 19:53 Uhr
Hallo zusammen,

in leichter Abwandlung könnte man auch Leerzeilen erzeugen.
Zeile 7 der Eingabe.cmd:
01.
>>\\MEIN-PC\Ordner1\Textdatei.txt echo.%var%
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
Bitte warten ..
Mitglied: Retschef
14.05.2010 um 20:03 Uhr
Thx,
Stimmt auf die Lösung mit 2 Batches bin ich noch nicht gekommen.

"if defined var >>\\MEIN-PC\Ordner1\Textdatei.txt echo %var% "

Verstehe ich leider nicht ganz was bewirkt das genau?^^

und wozu ist im 2. Abschnitt die 5. Zeile gut?
Wird die Variable nicht in der 6.Zeile bestimmt?

danke für die Lösung ich werde gleich ausprobieren obs so geht und euch bescheid sagen ;)

Mit freundlichen Grüßen
Retschef
Bitte warten ..
Mitglied: bastla
14.05.2010 um 20:10 Uhr
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 "if defined") - die Möglichkeit, durch eine solche "leere" Eingabe eine Leerzeile zu erzeugen, hat rubberman ja schon gezeigt.

Grüße
bastla
Bitte warten ..
Mitglied: Retschef
14.05.2010 um 21:18 Uhr
Hi,

Es läuft alles einwandfrei jetzt!
(fast) Genauso habe ich mir das vorgestellt!^^

Und das mit der Leerzeile klappt bei mir auch ohne Punkt wenn ich einfach :

>>\\MEIN-PC\Ordner1\Textdatei.txt echo.%name%: %var%

mache kommt das raus:

Mein Name: Hallo

THX !

Mit freundlichen Grüßen
Retschef
Bitte warten ..
Mitglied: bastla
14.05.2010 um 21:25 Uhr
Hallo Retschef!
Und das mit der Leerzeile klappt bei mir auch ohne Punkt
... aber nur, weil Du eben keine "leere" Zeile erzeugst ...

Anyhow, schön dass es jetzt passt.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...