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

Bestimmte Informationen aus einer Datei auslesen und mit der Information eine andere Datei umbenennen

Frage Entwicklung Batch & Shell

Mitglied: ClausJan

ClausJan (Level 1) - Jetzt verbinden

15.01.2009, aktualisiert 10:56 Uhr, 4816 Aufrufe, 13 Kommentare

Hallo "Zusammen"

Erstmal will ich hier sagen das dieses Forum wirklich sehr Informativ ist und auch sehr übersichtlich. Ich bin auf das Forum gekommen weil ich ein Problem habe das ich so nicht allein Lösen kann.

Ich habe eine Datei die Info.txt heist so aufgebaut ist:

DOCTYPE FAX
ARCHIVID AG
CLIENT 800
DESTINATION AG01
TYPE AKTT
DOC_TYPE DDEE990400
OBJ_ID 999999999888888888
COMPA 9.gg image/tiff 9.gg

Jetzt soll nur die "OBJ_ID" ausgelesen werden also diese Nummer 999999999888888888 ( die sich aber auch mit jeder neuen Datei ändert ). Mit Dieser Information soll dann die 9.gg die auch in dem Verzeichnissordner liegt
umgeändert werden in 999999999888888888.tif

Damit das auch noch ein wenig mehr Spaß macht gibt es ein Verzeichniss das so aufgebaut ist d:\Import\123456\123
d:\Import\123456\124
d:\Import\123456\125 und so weiter

und so weiter wo immer eine andere Info.txt besteht mit dementsprechenden Informationen ( OBJ_ID )
also wäre es sehr gut wenn es da eine "Schleife" gibt die oben in Verzeichniss Anfängt und das Verzeichniss abarbeitet. Wenn er die Info.txt abgearbeitet hat dann sollte wenn möglich ein Kontrolllauf erfolgen, also ein Check ob er aus der
OBJ_ID Nummer eine Datei mit der ID Nummer erstellt hat und anschliessend die Info.txt als Log umbenennen oder ein Fehler ausweisen.

So jetzt hoffe ich das die Informationen in Ordnung sind und freu mich wenn Ihr mir da Helfen könntet weil mich das jetzt schon seit Tagen fuchst.

LG
Claus
Mitglied: beckslevel91
15.01.2009 um 15:31 Uhr
Hey,

Frage: Soll die OBJ_ID nach belieben oder Zeitgesteuert ausgelesen werden??

Wenn es mit Batch-Befehlen nicht geht, könntest du es mit Linux Debian versuchen... weiß aber nicht genau wie das geht.

Gruß,

J.R.
Bitte warten ..
Mitglied: ClausJan
16.01.2009 um 08:12 Uhr
Hallo

Danke aber mit Linux kann ich das nicht machen. Danke
Bitte warten ..
Mitglied: bastla
30.01.2009 um 21:43 Uhr
Hallo ClausJan!

Etwas zum Testen:
01.
@echo off & setlocal 
02.
set "Basis=D:\import\123456" 
03.
set "Datei=info.txt" 
04.
set "Neu=info.log" 
05.
set "Log=D:\Fehler.txt" 
06.
 
07.
if exist "%Log%" del "%Log%" 
08.
for /d %%i in ("%Basis%\???") do call :ProcessDir "%%i" 
09.
if exist "%Log%" notepad "%Log%" 
10.
goto :eof 
11.
 
12.
:ProcessDir 
13.
pushd %1 
14.
if not exist "%Datei%" (>>"%Log%" echo %~nx1: Datei "%Datei%" fehlt & goto :Ende) 
15.
 
16.
set OBJID= 
17.
for /f "tokens=2" %%a in ('findstr /b "OBJ_ID" "%Datei%" 2^>nul') do set "OBJID=%%a" 
18.
if not defined OBJID (>>"%Log%" echo %~nx1: Zeile OBJ_ID fehlt & goto :Ende) 
19.
 
20.
set COMPA= 
21.
for /f "tokens=2" %%a in ('findstr /b "COMPA" "%Datei%" 2^>nul') do set "COMPA=%%a" 
22.
if not defined COMPA (>>"%Log%" echo %~nx1: Zeile COMPA fehlt & goto :Ende) 
23.
 
24.
if not exist "%COMPA%" (>>"%Log%" echo %~nx1: Datei "%COMPA%" fehlt & goto :Ende) 
25.
 
26.
move "%COMPA%" "%OBJID%.tif" 
27.
if errorlevel 1 ( 
28.
    >>"%Log%" echo %~nx1: Datei "%COMPA%" konnte nicht auf "%OBJID%.tif" umbenannt werden! 
29.
) else ( 
30.
    move "%Datei%" "%Neu%" || >>"%Log%" echo %~nx1: Datei "%Datei%" konnte nicht auf "%Neu%" umbenannt werden! 
31.
32.
 
33.
:Ende 
34.
popd 
35.
goto :eof
Ein Kontrolllauf ist an sich nicht erforderlich, da die entsprechenden Checks schon während der Bearbeitung durchgeführt werden.

Noch eine Anmerkung: In Zeile 8 wird das Suchmuster für die Unterordner mit
"%Basis%\???"
festgelegt, wobei "???" für "123", "124", "125" etc steht - falls der Name des Unterordners aus einer anderen (als 3) Zeichenanzahl bestehen sollte, muss dieses Muster angepasst werden; sollen allerdings ohnehin alle Unterorder des Basispfades bearbeitet werden, wäre "???" durch "*.*" zu ersetzen.

Grüße
bastla
Bitte warten ..
Mitglied: ClausJan
02.02.2009 um 08:57 Uhr
Hallo bastla

So weit Danke für das Script, ich habe nun "getestet" grins und leider ist da noch ein kleiner Fehler

Es kommt diese Fehlermeldung:

back: Datei "1.pg" fehlt
in der Info Datei steht zum schluss "COMP 1.pg image/tiff 1.pg" die 1.pg steht im selben verzeichniss wie die info.txt

Auch das Script läuft nur wenn ich die "Basis" nur das ganze Verzeichniss angebe.

Ich hoffe Du kannst mir nochmal Helfen.

LG Claus
Bitte warten ..
Mitglied: ClausJan
02.02.2009 um 12:45 Uhr
Hallo Bastla

Ich hab das jetzt soweit hin bekommen, aber ich habe noch ein weiteres Problem. Ich melde mich nochmal bei Dir. OK

LG Claus
Bitte warten ..
Mitglied: ClausJan
02.02.2009 um 18:36 Uhr
Hallo Bastla

Also Dein Script geht, ich habe es noch ein wenig für mich angepasst.

Nun ist es so das ich noch eine Steuer Datei benütige mit verschiedene Informationen:

Die Datei soll in dem jeweiligen Verzeichniss erstellt werden und soll den Namen von der OBJ_ID haben.

Also 999999999888888888.open

Der Inhalt der Datei soll so ausschauen:

OBJ_ID;ARCHIVID;DOCTYPE

Ich dachte mir man kann die INformationen aus der Info.Log netnehmen. Wäre ne nette Sache wenn Du mir da nochmal Helfen könntest.

LG Claus
Bitte warten ..
Mitglied: bastla
02.02.2009 um 18:49 Uhr
Hallo ClausJan!

Sollte sich in den obigen Batch integrieren lassen - einfach vor Zeile 33 (":Ende") platzieren:
01.
set DOCTYPE= 
02.
for /f "tokens=2" %%a in ('findstr /b "DOCTYPE" "%Datei%" 2^>nul') do set "DOCTYPE=%%a" 
03.
if not defined DOCTYPE (>>"%Log%" echo %~nx1: Zeile DOCTYPE fehlt & goto :Ende) 
04.
 
05.
set ARCHIVID = 
06.
for /f "tokens=2" %%a in ('findstr /b "ARCHIVID" "%Datei%" 2^>nul') do set "ARCHIVID=%%a" 
07.
if not defined ARCHIVID (>>"%Log%" echo %~nx1: Zeile ARCHIVID fehlt & goto :Ende) 
08.
 
09.
>%OBJ_ID%.open echo %OBJ_ID%;%ARCHIVID%;%DOCTYPE%
Grüße
bastla
Bitte warten ..
Mitglied: ClausJan
03.02.2009 um 09:38 Uhr
Hallo bastla

Leider geht das bei mir nicht so ich bekomme ein DOCTYPE fehler. Das ist bestimmt nur ne Kleinigkeit aber ich komm nicht drauf.

LG Claus
Bitte warten ..
Mitglied: bastla
03.02.2009 um 10:17 Uhr
Hallo ClausJan!
ich bekomme ein DOCTYPE fehler.
Welche Art von Fehler?

Grüße
bastla
Bitte warten ..
Mitglied: ClausJan
03.02.2009 um 17:51 Uhr
Hallo

In der Log Datei steht nur DOCTYPE nicht gefunden. Ich habe das Script in eine neue Batch gesetzt und angepasst das läuft, aber wenn ich es vor dem Ende setze dann geht das nicht. Ich vermute das er die Commands nicht mehr findet und dadurch auch die DOCTYPE von der Datei nicht mehr auslesen kann.

Ich habe da noch eine Frage: Wie kann ich denn 2 Batch dateien so verknüpfen das die nacheinander ablaufen.

LG Claus
Bitte warten ..
Mitglied: bastla
03.02.2009 um 18:41 Uhr
Hallo ClausJan!

Sorry - die angegebene Position ist natürlich Unsinn , wenn in Zeile 26 die Datei, aus der die Daten kommen sollen, bereits verschoben wird - daher nach Zeile 18 und vor Zeile 26 einfügen.
Wie kann ich denn 2 Batch dateien so verknüpfen das die nacheinander ablaufen.
Einfach den Pfad des zweiten Batches als letzten Befehl des ersten Batches eintragen - oben wäre dies (falls es noch nötig sein sollte) als neue Zeile 10.

Grüße
bastla
Bitte warten ..
Mitglied: ClausJan
04.02.2009 um 14:16 Uhr
Hallo Bastla

Also jetzt habe ich das Script soweit das es "geht" ich sage ganz doll Danke an Dich und alle die hier mit geholfen haben.
Ich freu mich das das so geklapt hat und hoffe mal ein Stein zurückwerfen zu können.

LG Claus

PS: Soll ich das ferige Script hier mal abbilden für andere????
Bitte warten ..
Mitglied: bastla
04.02.2009 um 16:54 Uhr
Hallo ClausJan!

Freut micht, dass es geklappt hat - und das Ergebnis kann sich doch sicherlich sehen lassen (besonders, wenn Du es als Code formatiert darstellst ) ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

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

(1)

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

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell, Log Datei auslesen, bei Änderungen E-Mail senden (12)

Frage von swissbull zum Thema Batch & Shell ...

Microsoft Office
Excel Dateien durchsuchen und Werte einzeln in neue Excel Datei auslesen (1)

Frage von krischanii zum Thema Microsoft Office ...

Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH ini Datei Datei auslesen (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (14)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...