Top-Themen

Aktuelle Themen (A bis Z)

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 21.04.2010 um 15:55:47 Uhr
Mehrere GZ Dateien entpacken, umbennen und modifizieren
Set /a rgc+=1
659
Einfaches Umbennen reicht...
Jepp, hätte mir auch gereicht...
Set /a rgc+=1
660

Mehrere GZ Dateien entpacken, umbennen und modifizieren

Mitglied: Marie-K

Marie-K (Level 1) - Jetzt verbinden

21.04.2010, aktualisiert 17:22 Uhr, 6235 Aufrufe, 4 Kommentare

Einmal im Monat kommen mehrere GZ-Dateien per E-Mail, die für den Import nach Access vorbereitet werden müssen.

Teil 1)
Am Monatsanfang kommen mehrere GZ-Dateien im folgenden Format rein: Bereich_Monat-Jahr.gz
Darin enhalten ist jeweils eine Datei mit einem zufälligen Dateinamen: JJDFB_6357851.xls
Ziel ist es Datein zu erhalten, die folgenden Dateinamen haben: Bereich.txt
(Einfaches Umbennen reicht, es handelt sich nicht um echte xls-Dateien)

Teil 2)
Die Dateien enthalten am Anfang eine variable Zeilenanzahl Daten, die ich in Access nicht benötige, d.h. gelöscht werden sollten.
Die erste Zeile, die erhalten bleiben soll, beginnt stets mit "Logistikebene class_part".

Am besten bearbeitet die Batchdatei einfach alle GZ-Dateien im selben Verzeichnis (feste Pfadangaben wären hinderlich).

Ich schätze das ist sehr viel Anforderung auf einmal, zudem ich noch nie mit Batchprogrammierung zu tun hatte.
Aber ich bin wahnsinnig dankbar für jede Unterstützung!

Grüße,
Marie
Mitglied: laster
21.04.2010 um 15:32 Uhr
Hallo Marie,

1. mit dem Programm 7-zip kannst Du die Datei entpacken
2. die Datei umbenennen
3. mit dem Befehl find kannst Du filtern, allerdings Zeilen mit einem bestimmten Inhalt übernehmen oder nicht.
01.
7z e Bereich_Monat-Jahr.gz
02.
ren *.xls bereich.txt
03.
find "Text in zu uebernehmende Zeilen" bereich.txt > bereich.dat
so ähnlich kann es werden.
Probieren, probieren ...

vG
LS
Bitte warten ..
Mitglied: Marie-K
21.04.2010 um 17:17 Uhr
Hallo Laster,

der Tipp mit 7zip war gut. Ich habe daraufhin einen Kollegen gebeten mir etwas unter die Arme zu greifen und "Schritt 1" ist soweit auch erledigt. Nun ist er aber auch am Ende mit seinem Latein...

Der Quellcode sieht aktuell so aus:
01.
FOR %%f in (*.gz) DO (
02.
	7za e -y -so "%%f" > "%%~nf.txt"
03.
	)
Was noch fehlt ist "Schritt 2". Die erste Zeile, die erhalten bleiben soll, ist die Zeile mit den zukünftigen Spaltentiteln, danach folgen Daten.

Grüße,
Marie
Bitte warten ..
Mitglied: Biber
21.04.2010 um 17:39 Uhr
Moin Marie-K,

willkommen im Forum.

zu dem 2. Schritt, zum "Überlesen" der ersten nicht benötigten Zeilen wäre eine der möglichen Strategien

  • innerhalb der oberen FOR-Anweisung oder auch nach kompletter Abarbeitung der ersten FOR-Anweisung danach in einer neuen FOR ..In (*.txt)-Anweisung
  • jeweils mit
{Find /n oder } Findstr /n "Logistikebene class_part" "%%~nxi"

die Zeilennummer des Suchtextes zu ermitteln. [Bitte am CMD-Prompt mit einer der Textdateien testen.]

  • Diese Zeilennummer in einer Variablen zu merken und diese Variable als "Skip"-Parameter für den Befehl MORE zu benutzen.
  • und somit mit "more +n dieTextdatei.txt > dieTextDatei.csv" zu erzeugen, die dann Access verarbeiten kann.

Du bekommst sicherlich ein wenig mehr Sicherheit beim Batchen, wenn du mal kurz am CMD-Prompt bei FOR /?, SET /?, FINDSTR /? und MORE/? recherchierst.
Oder hier im Bereich "Batch & Shell" sollte auch einiges zu finden sein zu "FindStr " oder "Zeilen überspringen Batch".

Wenn du steckenbleibst, helfen wir auch gerne weiter. Aber versuche es mal bitte - ist ein überschaubarer Umfang.

Grüße
Biber
Bitte warten ..
Mitglied: LotPings
21.04.2010 um 17:43 Uhr
Moin moin,

Ich kann mich Bibers Ratschlägen nur anschließen.

Der Übersicht halber würde ich die Dateien in (ggfs temporäre) Unterverseichnisse entpacken.

Das sähe dann z.Bsp. so aus:
01.
@Echo off
02.
For /f "delims=" %%A in ('dir /B/A-D *.gz') do Call :Process "%%A" "%%~nA"
03.

04.
Echo Done
05.
goto :Eof
06.

07.
:Process
08.
:: Name splitten
09.
Set "Archiv=%~2"
10.
Set "Monat=%Archiv:*_=%"
11.
Call Set "Bereich=%%Archiv:_%Monat%=%%"
12.

13.
Echo Dateiname: %~1
14.
Echo Archiv   : %Archiv%
15.
Echo Bereich  : %Bereich%
16.
Echo Monat    : %Monat%
17.

18.
:: Entpacke in Unterordner
19.
If Not Exist %Archiv% MD %Archiv%
20.
7z e -o%Archiv% %1 *.xls
21.
:: verarbeite *.XLS
22.
For /F "Delims=" %%B in ('Dir /B/A-D .\%Archiv%\*.xls') Do Call :ProcXLS "%%~fB"
23.
:: Hier ggfs aufräumen: Unterordner löschen
24.
goto :Eof
25.

26.
:ProcXLS
27.
:: Ermittle Anfangszeile
28.
for /f "delims=[]" %%C in (
29.
  'find /I /N "Logistikebene class_part" ^<%1'
30.
    ) Do Set /A "Offset=%%C-1"
31.
:: Gebe aus in neue Datei
32.
More +%Offset% <%1 >"%Bereich%.txt"
EinTest hier Anhand deiner Angaben funktionierte soweit.

Gruß
LotPings
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch - IF - mehr als eine Datei eines bestimmten Typs

gelöst Frage von zimbosmurfBatch & Shell9 Kommentare

Hallo! Ich möchte in einer Batchdatei eine Datei eines bestimmten Typs verarbeiten. Hierfür hole ich mir mit for %%G ...

Microsoft Office

Word 2010 kann Datei nicht mehr speichern . plötzlich schreibgeschützt

Frage von RicoPausBMicrosoft Office4 Kommentare

moin ich stehe hier vor einem kleinen Rätsel. Hier erst einmal die Problem-Beschreibung: - User legt ein neues Dokument ...

Microsoft Office

Office 2013 Datei per Doppelklick öffnen geht nicht mehr

gelöst Frage von onkel-ossiMicrosoft Office3 Kommentare

Hallo, ich habe seit heute unter Windows 10 und Office 2013 folgendes Problem: Wenn ich eine Datei (Excel oder ...

Batch & Shell

Paramter aus Batch-Datei in Text-Datei schreiben, sobald diese nicht mehr verwendet wird

gelöst Frage von Schorsch112Batch & Shell5 Kommentare

Hallo zusammen, ich habe ein kleines Problem und da ich mich leider erst seit sehr kurzem mit dem Scripting ...

Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 1 TagInternet

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 2 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 4 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 7 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks23 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

HTML
Google maps
Frage von jensgebkenHTML20 Kommentare

Hallo Gemeinschaft, hab mal ne Frage zu Maps - habe es hinbekommen, dass ich einen iframe link erstellen kann ...

Switche und Hubs
PC Verursach Probleme im Netzwerk
gelöst Frage von spoboeSwitche und Hubs16 Kommentare

Hallo zusammen, folgene Situation macht mich inzwischen ratlos: In unserem Betrieb ist ein Rechner über die Hausverkabelung an einem ...