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, 3336 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.

MfG
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
Ähnliche Inhalte
Batch & Shell
gelöst EDI Dateien auf Inhalt prüfen und verschieben (6)

Frage von ThomasKern zum Thema Batch & Shell ...

Windows Update
Verschieben der SUSDB.mdf und der SUSDB_log.ldf (1)

Link von Mvinogradac zum Thema Windows Update ...

Batch & Shell
gelöst Powershell Get-Content Inhalt filtern (1)

Frage von derhoeppi zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
LAG zwischen Cisco SG300 und Dlink DGS1100 herstellen - wie? (18)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

CPU, RAM, Mainboards
Hardware Fragen (12)

Frage von xaver-2 zum Thema CPU, RAM, Mainboards ...

Grafikkarten & Monitore
Neue Graifkkarte - kein Bild (10)

Frage von bestelitt zum Thema Grafikkarten & Monitore ...

Exchange Server
gelöst Exchange 2013 - Kontakte aus CSV importieren (9)

Frage von hesper zum Thema Exchange Server ...