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

Printed on: April 23, 2024 at 13:04 o'clock

Member: bastla
bastla Dec 30, 2014 at 18:37:35 (UTC)
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
Member: striding
striding Dec 30, 2014 at 19:47:00 (UTC)
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
Member: striding
striding Dec 30, 2014 updated at 20:04:13 (UTC)
Goto Top
Hab sie eben unter C:\%windir%\system32 gefunden.
Deine Zeile werde ich gleich morgen testen und bescheid geben!
Member: striding
striding Dec 31, 2014 at 10:23:20 (UTC)
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
Member: bastla
Solution bastla Jan 01, 2015, updated at Jan 03, 2015 at 14:46:45 (UTC)
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
Member: striding
striding Jan 03, 2015 at 14:46:24 (UTC)
Goto Top
Hallo bastla!

Perfekt.
Danke Dir für Deine Hilfe!

Gruß
striding