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
Kommentar vom Moderator Biber am 22.02.2010 um 17:11:18 Uhr
Warum passiert es immer montachs....?
Über kompetente Hilfe bin ich im Voraus sehr dankbar..
...dass so nette junge Menschen über Hilfe dankbar sind und sich für jede Antwort freuen....*seufz*...

Textdatei mit bestimmtem Inhalt verschieben

Frage Entwicklung Batch & Shell

Mitglied: msblaster32

msblaster32 (Level 1) - Jetzt verbinden

22.02.2010, aktualisiert 17:11 Uhr, 3326 Aufrufe, 11 Kommentare

Hallo Community, ich bin mal wieder auf der Suche nach einer Antwort zur einer Frage die eigentlich ganz einfach ist, irgendwie jedoch nicht. Ich möchte eine Textdatei auslesen und auf Grund Ihres Inhalts dann eine Aktion(z.B. Verschieben) durchführen.

Die Textdatei hat die Endung *.test und ist im normalen Zeichenformat codiert. Ich suche einen Befehl der in die Datei schaut und dann auf Grund eines bestimmten Wortes, welches sich innerhalb der Datei befindet, diese dann in einen entsprechenden Ordner kopiert. Z.B. taucht in der 3. Zeile stets eine Mailadresse auf. Abhängig von dieser würde ich die Datei dann gerne in einen definierten Ordner verschieben lassen.

Ist sowas mit ein paar einfachen Befehlen möglich? Ich habe schon mit robocopy, xcopy und find rumprobiert, aber das führt alles irgendwie nicht zum Ziel.

Über kompetente Hilfe bin ich im Voraus sehr dankbar...
Mitglied: Snowman25
22.02.2010 um 16:58 Uhr
01.
type abc.test|findstr a@b.de 
02.
if %ERRORLEVEL%==0 move abc.test D:\aatb
so in etwa?
Bitte warten ..
Mitglied: pete.dawgg
22.02.2010 um 17:02 Uhr
installier die die gnu-tools. dann
if [ `grep -q SUCHWORT FILE.TEST; echo $?` -eq 0 ]; then mv FILE.TEST ZIEL; fi
(so in etwa, vorbehaltlich Tippfehlern)
Bitte warten ..
Mitglied: Snowman25
22.02.2010 um 19:22 Uhr
Zitat von pete.dawgg:
installier die die gnu-tools

Also bitte...
Wenn die Aufgabe nicht mit Bordmitteln zu lösen ist, dann wöre das vllt. angebracht.
Allerdings ist das Problem locker mit Bordmitteln zu schaffen, da brauch ich nichts externes

Gruß
Snow
Bitte warten ..
Mitglied: msblaster32
23.02.2010 um 09:58 Uhr
Hallo und danke erstmal für die Antworten!


geht leider noch nicht so ganz, er durchsucht alle Dateien und da der Begriff in einer der Dateien gefunden wurde, gibts anscheinend immer automatisch den errorlevel 1, somit werden dann im Anschluss auch die Dateien kopiert, in welchen die Mailadresse gar nicht drinn steht...

so sieht es derzeitig aus:
type *.test|findstr /R %adressen_test%
if %ERRORLEVEL%==0 copy *.test %pfad_test%
if not move *.test %pfad_test1%

hat jemand einen Tipp? Ich möchte halt in der Variable %adressen_test% festlegen, für welche Mails der Kopiervorgang gilt, wenn eine Adresse in der Datei steht, die unbekannt ist, soll die Datei in einen anderen Ordner verschoben werden.
Bitte warten ..
Mitglied: Snowman25
23.02.2010 um 10:17 Uhr
If not move???
sowas gibts nicht!
01.
type *.test|findstr /R %adressen_test% 
02.
if %ERRORLEVEL%==0 ( 
03.
	copy *.test %pfad_test% 
04.
) else ( 
05.
	move *.test %pfad_test1% 
06.
)
So würde das schon eher funktionieren
Bitte warten ..
Mitglied: msblaster32
23.02.2010 um 10:41 Uhr
hatte das mal irgendwo gelesen, dass man nach einem if mit "if not" weiterarbeiten kann,

habe den Code jetzt entsprechend angepasst mit dem selben Ergebnis wie vorher, es werden nach wie vor, ausnahmslos alle Dateien kopiert, egal ob die Mailadresse drinn steht oder nicht.

habe testweise eine leere datei mit der endung.test erstellt, wir kopiert obwohl nichts drinn steht, fast so, als hätte findstr überhaupt keine funktion
Bitte warten ..
Mitglied: Snowman25
23.02.2010 um 16:52 Uhr
stimmt deine Variable %adressen_test% denn auch? Woher kommt das /R? Das gehört nicht in den Befehl rein.
mit copy *.test wählst du alle dateien aus, die die Endung .test haben. Logischerweise wird dann auch die Leere kopiert, wenn er einmal deine mailadresse findet.
machs mit ner for-schleife.

Gruß
Snow
Bitte warten ..
Mitglied: msblaster32
24.02.2010 um 09:24 Uhr
das /r hatte ich testweise eingefügt da ich vermutete, das er sonst auch nach leerzeichen sucht bzw einzelnen worten in der variable %adressen_test%

Wie du schon richtig schreibst, liegt das Problem daran, dass die leeren Dateien auch kopiert werden da in einer der Dateien die Mailadresse gefunden wurde.

Könntest du mir ein paar Tipps geben, wie man nach einander alle Dateien durcharbeiten lassen und dann entsprechend verarbeiten kann? So versteh ich jetzt grad den Sinn der for-Schleife!?

Danke trotzdem nochmal für die bisherige Hilfe
Bitte warten ..
Mitglied: Snowman25
24.02.2010 um 11:09 Uhr
hallo msblaster32,

Lies dir einfach mal die Hilfe zur For-schleife durch (for /?)
Ich dachte da an etwas wie:
for %%I in (*.test) do ( 
	type %%I | findstr %adressen_test% 
	if %ERRORLEVEL%==0 ( 
		copy %%I %pfad_test% 
	) else ( 
		move %%I %pfad_neu% 
)
UNGETESTET

Gruß
Snow
Bitte warten ..
Mitglied: msblaster32
25.02.2010 um 15:24 Uhr
moin, funktioniert leider überhaupt nicht, sagt immer das %%I syntaktisch nicht verarbeitbar ist, kopiert aber die Dateien welche eigentlich verschoben werden sollen. Habe leider nicht so viel Ahnung von for-Schleifen und Batchprogrammierung.

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Snowman25
25.02.2010 um 16:53 Uhr
Zitat von msblaster32:
sagt immer das %%I syntaktisch nicht verarbeitbar ist

Du musst das ganze natürlich als Batch-Datei ablaufen lassen.
Wenn du es direkt am Prompt eingibst, dann mit nur einem %-Zeichen
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst EDI Dateien auf Inhalt prüfen und verschieben (6)

Frage von ThomasKern zum Thema Batch & Shell ...

Batch & Shell
gelöst Inhalt aus ca. 106.000 TXT Dateien zu einer einzigen Textdatei "mergen" mit Abstandseinbau (1)

Frage von lukeskywalker501 zum Thema Batch & Shell ...

Batch & Shell
Powershell - In Textdatei suchen und ersetzen (1)

Frage von Raaja89 zum Thema Batch & Shell ...

Exchange Server
Inhalt von Postfächern in Exchange löschen (9)

Frage von m.reeger zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...