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

Text an spezieller Stelle suchen

Frage Entwicklung Batch & Shell

Mitglied: EckerleADM

EckerleADM (Level 1) - Jetzt verbinden

05.03.2009, aktualisiert 16:33 Uhr, 3080 Aufrufe, 4 Kommentare

Hallo,

habe hier folgende Problemstellung zu bewältigen:
Es kommen täglich EDI Daten in ein Verzeichnis (Dateiname variiert (laufende Nummer)).
Dort finde ich immer in der zweiten Zeile an der Position 22 - 25 eine spezielle Nr, mit welcher ich das Werk des Kunden identifizieren kann (XXXX).

511 ...........
512 51201XXXX
513
......

Ich möchte die Datei (wenn möglich per Batch) in ein spezielles Verzeichnis verschieben, wenn ein spezieller Wert an dieser Stelle steht.

Vielen Dank für Eure Hilfe
Mitglied: Biber
05.03.2009 um 19:32 Uhr
Moin EckerleADM,

willkommen im Forum.

Ich habe mir mal 3 Dateichen nach Deinem Muster und unter der Endung *.edi angelegt und komme mit folgendem Oneliner zum Ziel (oder zumindest zu einem Lösungsweg) am CMD-Prompt:
01.
>for /f "delims=: tokens=1,2,4" %i in ('findstr /n $ d:\temp\*.edi^|findstr /C:":2:"') do @set "x=%k" & @echo Datei "%i:%j" kopieren nach Z:\Ziel\!x:~9,4! 
02.
Datei "d:\temp\edi8815.edi" kopieren nach Z:\Ziel\XXXX 
03.
Datei "d:\temp\edi8816.edi" kopieren nach Z:\Ziel\YYYY 
04.
Datei "d:\temp\edi8817.edi" kopieren nach Z:\Ziel\aaaa
Im Batch dann ungefähr:
01.
::---VerteilDieEDIs.cmd --- 
02.
@echo off & SetLocal EnableDelayedExpansion 
03.
Set "sourceDir=D:\Temp" & Set "targetdir=Z:\Ziel" 
04.
FOR /F "delims=: tokens=1,2,4" %%i in ('findstr /n $ "%sourceDir%\*.edi"^|findstr /C:":2:"') do ( 
05.
            set "x=%k"  
06.
           echo MOVE "%i:%j" "%targetDir%\!x:~9,4!" 
07.
)
[Ungetestete Skizze]

Erläuterung:
Ein proof-of-concept bzw. der erste Schritt ist das Rausflöhen der zweiten Zeilen je Datei:
>findstr /n $ d:\temp\*.edi|findstr /C:":2:" 
d:\temp\edi8815.edi:2:512 51201XXXX 
d:\temp\edi8816.edi:2:512 51201YYYY 
d:\temp\edi8817.edi:2:512 51201aaaa
.... durch Durchsuchen aller *.edi-Dateien nach "$" (=Zeilenende) -->liefert alle Zeilen.
Aber wir wollen nur die Zeile 2--> deshalb das Ergebnis nach ":2:" filtern.
Diese Strings danach mit FOR /F durchnudeln.

Grüße
Biber
Bitte warten ..
Mitglied: EckerleADM
06.03.2009 um 07:06 Uhr
Hallo Biber,

vielen Dank für Deinen Lösungsansatz.
Ich werde mir das mal so zusammenbauen und probier dann mal mein Glück.
Bitte warten ..
Mitglied: Biber
06.03.2009 um 07:58 Uhr
Moin EckerleADM,
Zitat von EckerleADM:
... und probier dann mal mein Glück.
Na ja...
Glück ist, seine Freude in der Freude des anderen finden.
Georges Bernanos (1888 - 1948), Schriftsteller

Also teile dann bitte Dein Glück mit uns und setze einen grünen Haken.

Schönes Wochenende
Biber
Bitte warten ..
Mitglied: EckerleADM
06.03.2009 um 11:22 Uhr
So, hab jetzt folgende Lösung umgesetzt:

@echo off & SetLocal EnableDelayedExpansion
set "sourceDir=\\Server\\Quelle" & Set "targetDir=\\Server\\Ziel"

set text="51201XXXX000"

FOR /F "tokens=1,2,4 delims= " %%i in ('findstr /M /L "%text%" "%sourceDir%\*.neu"') do (
MOVE "%%i" "%targetDir%\!x:"

Ich konnte leider die Lösung mit der zweiten Zeile nicht umsetzen, bekam immer wieder einen Syntaxerror
(Vieleicht war ich auch etwas zu ungeduldig bei der Probiererei...)

Da die Zeichenfolge "text" nach Rücksprache mit unserem Kunden eindeutig das Werk identifiziert, habe ich diesen Weg gewählt...
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel (2016): Enthaltenen Text suchen (3)

Frage von ralfkausk zum Thema Microsoft Office ...

JavaScript
gelöst Datumabhängiger Text in HTML anzeigen (4)

Frage von adm2015 zum Thema JavaScript ...

VB for Applications
gelöst csv Dateien als Text importieren (7)

Frage von Bacchida zum Thema VB for Applications ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (11)

Frage von takvorian zum Thema Windows Server ...