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, 3068 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Batch & Shell
gelöst Suchen und Ersetzen mehrerer Suchbegriffe per Batch (4)

Frage von makroll10 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...