striding
Goto Top

Zeilen aus Textdokument kopieren

Hallo Administrator-Community!

Ich stehe mal wieder vor einer, für mich, komplizierten Aufgabe, und bestimmt kann mir auch diesmal jemand weiterhelfen. face-wink

Ich möchte ein einfaches Textdokument einmal in der Woche öffnen, und alle Zeilen kopieren (in den Cache).
Zwischen dem Kopieren der einzelnen Zeilen sollen 10 Sekunden vergehen.

Dass die Batch wöchentlich geöffnet wird, kann ich recht simpel mit dem Aufgabenplaner erledigen, das Textdokument mit der Batch zu öffnen bekomme ich auch noch hin. face-big-smile Die Zeitverzögerung bekomme ich warscheinlich mit einem Timeout \t hin.
Aber wie kann ich einzelne Zeilen kopieren?

In dem Textdokument steht pro Zeile eine Internetadresse. Bsp.:

"Textdokument XYZ"

https://www.google.fr/
http://www.lemonde.fr/
http://www.lefigaro.fr/
http://www.voila.fr/

Die Batch soll also "https://www.google.fr/" aus Zeile 001 in den Zwischenspeicher kopieren, 10 Sekunden warten, "http://www.lemonde.fr/" aus Zeile 002 kopieren, etc.

Die Textdatei wird immer wieder mit neuen Adressen erweitert. Kann man das mit einer Art Schleife erledigen, sodass die Batch jedesmal alle vorhandenen Zeilen durchgeht und aufhört wenn er eine Zeile findet in der nichts eingetragen ist?

Kann mir da vielleicht jemand bitte weiterhelfen?

Freundliche Grüße

Striding

Content-Key: 258716

Url: https://administrator.de/contentid/258716

Ausgedruckt am: 28.03.2024 um 13:03 Uhr

Mitglied: bastla
bastla 30.12.2014 um 19:37:35 Uhr
Goto Top
Hallo striding!

Soferne unter Deinem nicht genannten Betriebssystem die "clip.exe" verfügbar ist, ungetestet etwa so:
for /f "usebackq delims=" %%i in ("D:\Textdokument XYZ.txt") do echo %%i|clip & timeout 10
Was meinst Du übrigens mit
aufhört wenn er eine Zeile findet in der nichts eingetragen ist?
Eine for-Schleife ignoriert grundsätzlich Leerzeilen und läuft bis zum Ende der Datei.

Grüße
bastla
Mitglied: striding
striding 30.12.2014 um 20:47:00 Uhr
Goto Top
Hallo bastla!

Mein OS ist W7 Ultimate, und eine "clip.exe" kann ich bei mir leider nicht finden. Weder im Eingabefeld beim Startbutton, noch über die Eingabeaufforderung.
Besonders viele Möglichkeiten zum Downloaden finde ich auch nicht gerade.
http://www.download-a-dll.com/detail_clip.exe.html hätte die Datei angeblich, aber da sie nicht auf http://fr.dll-files.com/c/ zu finden ist, bin ich etwas vorsichtig...
Gibt es eine Alternative zur "clip.exe"?

Damit meine ich eigentlich, dass die Batch aufhört mit dem kopieren, sobald es eine Zeile ohne Inhalt gibt. Also das Ende vom Inhalt der Datei.
Das war wohl etwas blöd formuliert...
Wenn eine for-Schleife Leerzeilen ignoriert, woher weis sie dann wann das Ende der Datei ist? Wenn keine Zeichen mehr kommen? Und wielange sucht sie?
Du siehst, ich kenne mich mit Schleifen nicht wirklich aus.. face-sad ich sollte mich wohl etwas mehr informieren..

Grüße
striding
Mitglied: striding
striding 30.12.2014 aktualisiert um 21:04:13 Uhr
Goto Top
Hab sie eben unter C:\%windir%\system32 gefunden.
Deine Zeile werde ich gleich morgen testen und bescheid geben!
Mitglied: striding
striding 31.12.2014 um 11:23:20 Uhr
Goto Top
Deine Zeile funktioniert wunderbar! Vielen Dank dafür!

Mir ist eben noch eine "kleine "Optimierung" eingefallen, vielleicht kann man sie ja irgendwie umsetzten:
Kann ich mir im CMD einen Text anzeigen lassen, sodass ich im CMD immer sehe, welche Adresse gerade kopiert wird?
Momentan sehe ich im CMD Fenster nur
"Gewartet wird 10 Sekunden. Weiter mit beliebiger Taste..."

Zum Beispiel ein "echo lemonde" oder "echo lefigaro"

" lemonde
Gewartet wird 10 Sekunden. Weiter mit beliebiger Taste...

lefigaro
Gewartet wird 10 Sekunden. Weiter mit beliebiger Taste..."

Kann ich irgendwie in die for-Schleife eingreifen und ihr sagen dass sie vor dem nächsten kopieren einen bestimmten Text anzeigen soll? Wobei es halt nicht immer derselbe Text ist.

Kann man das realisieren oder würde das dann vielleicht doch zu komplex werden?

Grüße
striding
Mitglied: bastla
Lösung bastla 01.01.2015, aktualisiert am 03.01.2015 um 15:46:45 Uhr
Goto Top
Hallo striding!

Etwa so:
for /f "usebackq delims=" %%i in ("D:\Textdokument XYZ.txt") do echo %%i & echo %%i|clip & timeout 10
Grüße
bastla
Mitglied: striding
striding 03.01.2015 um 15:46:24 Uhr
Goto Top
Hallo bastla!

Perfekt.
Danke Dir für Deine Hilfe!

Gruß
striding