Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

Batch zum vergleichen 2er Textdateien und ändern der Ziel Textdatei etwa wie suchen und ersetzen

Frage Entwicklung Batch & Shell

Mitglied: Visser

Visser (Level 1) - Jetzt verbinden

23.10.2008, aktualisiert 24.10.2008, 4655 Aufrufe, 4 Kommentare

Ich weiss, das ich KEIN Crack auf dem Gebiet batch bin und haben ein unlösbares Problem zu bewältigen.
Vielleicht kann mir jemand helfen.

Ich habe 2 Verzechnisse, welche zum import von Dateien genutzt werden soll.

Die abgelegten dteien sind PDF und DWG.
das Problem ist, das die Dateien mit Revisionskennung kommen, welche als Information benötigt wird, aber nicht in der Importdatei vorhanden ist.

beispiel Datei:
Eintrag in Excel-liste 096008-263202.dwg
vorhandene Datei 096008-263202R01.dwg

Nun gehe ich hin und Schreibe eine Textdatei, welche die Dateinamen hält und benenne die Dateien um, damit sie gefunden werden.

Folgende Probleme habe ich:

1. Wenn eine Datei kein R enthält, wird noch einmal die Endung angefügt.
Ich hatte versucht, die Dateien ohne R vorher mit dir -*R*.* zu verschieben, hier findet das Batch keine Dateien.
2. Die Datei Rev. TXT hält die Revisionsinformationen, welche aber für den Import am besten in eine Excel Datei ohne R gesucht wird und in die nächste Zeile eingefügt wird.
Dies geht aber nur ohne manuellen Eingriff, da der Import periodisch laufen soll. Im Ernstfall sollte es auch mit einer Textdatei gehen. Auch hier muss ein text in datei a gesucht werden und Tab oder Semikolon getrennt in die Datei eingefügt werden und zwar ohne Verzeichnisname, welcher immer fest ist (c:\import1\....)
Beispiel Datensatz
Dies ist der gesuchte String
07 1175 110 001 0 07-1175-HAD-ZD-140 096008-231200 Beispieltext

Beispieltext: c:\import\096008-263202.dwg
*
@echo off
:IF
IF NOT EXIST "C:\Konvertiert\REV.txt" goto los
goto import

:los
IF EXIST c:\import\*.dwg goto list
IF EXIST c:\import\*.pdf goto list
goto warte

:warte
@echo Keine Dateien zur Verarbeitung vorhanden
@Ping 192.168.0.251 -n 20 > nul
goto los

:Import
@echo Importvorgang noch nicht abgeschlossen.
@Ping 192.168.0.251 -n 20 > nul
goto IF

:list
call c:\konvertiert\listnamemove.cmd
goto IF

*
listnamemove.cmd
*
@echo off
dir c:\import\*.dwg /s /b > c:\Konvertiert\REV.txt
dir c:\import\*.pdf /s /b >> c:\Konvertiert\REV.txt
cd c:\import
for %%f in (*.dwg;*.pdf) do @for /f "delims=R" %%n in ('echo %%~f') do move /y "%%~f" "%%n%%~xf"
dir c:\import\*.dwg /s /b > c:\Konvertiert\Dateien.txt
dir c:\import\*.pdf /s /b >> c:\Konvertiert\Dateien.txt
cd c:\Konvertiert\
for /F "delims=," %%i in (dateien.txt) do move %%i c:\Konvertiert
@echo VERARBEITUNG ABGESCHLOSSEN !
Mitglied: bastla
23.10.2008 um 11:19 Uhr
Hallo Visser!

Nur mal als Denkanstoß: Mit
for %%f in (*R*.dwg;*R*.pdf) do ...
solltest Du ausschließlich die Dateien mit Revisionsinfo "erwischen" können ...

Und ganz nebenbei: "move" benötigt in einem Batch kein "/y".

Grüße
bastla

P.S.: Für mehr habe ich momentan leider nicht Zeit
Bitte warten ..
Mitglied: Visser
23.10.2008 um 11:45 Uhr
Danke!

Problem 1 ist schonmal gelöst !

das /Y ist wohl noch ein rest von div. tests.

Ich bin nun schon einen Schritt weiter und benutze eine csv datei.
kann mit jemand helfen, eine suche aus einer Textdatei mit Inhalt:

c:\import\096008-255201R-02.dwg
c:\import\096008-255204R-01.dwg
c:\import\096008-257100R.dwg

nach 13 stellen hinter c:\import\ als wert in csv suchen und den gesamten Text ohne c:\import\ nur an der ersten Fundstelle einfügen?
Bitte warten ..
Mitglied: bastla
23.10.2008 um 20:58 Uhr
Hallo Visser!

Kannst Du bitte nochmals genau erklären, wo eingefügt werden soll?

Das Heraussuchen selbst könnte so ablaufen:
01.
@echo off & setlocal 
02.
for /f "tokens=2* delims=\" %%i in ('findstr /c:"R" "D:\Deine.csv"') do echo %%j
Grüße
bastla
Bitte warten ..
Mitglied: Visser
24.10.2008 um 10:44 Uhr
Hallo bastla,

vielen Dank für die Antwort!

In meinem Script wird ja eine Textdatei angelegt, welche die Ursprünglichen Dateinamen beinhaltet.

C:\Konvertiert\REV.txt

Da das Importtool eine Eindeutigkeit der Dokumente voraussetzt, müssen wir die Dateien umbenennen, den Ursprünglichen Text aber als Datensatz in die Datenbank schreiben. Also habe ich eine CSV, welche die Dateinamen ohne Rev enthält und einen Dateinamen sprich :

096008-231200 096008-231200.dwg
096008-231100 096008-231100.dwg

Inhalt der Textdatei:
c:\Konvertiert\096008-254200R02.dwg
c:\Konvertiert\096008-254201R-02.dwg

Es soll nun in der REV Datei nach c:\Konvertiert\ durch Blank erstetzt werden und jeden reinen String in der Textdatei soll in der CSV gesucht werden und nur die erste Fundstelle ersetzt werden.
Der Dateiname mit Endung darf nicht umbenannt werden.

Ist vielleicht etwas schwierig. Zumindest für mich.
Dafür kann ich bei jedem Netzwerk und Windows Problem helfen.
Lieben Dank für eure Hilfe!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - In Textdatei suchen und ersetzen (5)

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmten Bereich einer Textdatei ausgeben mittels Batch (10)

Frage von Django.Durano zum Thema Batch & Shell ...

Neue Wissensbeiträge
Firewall

PfSense OpenVPN beschleunigen

Tipp von Dobby zum Thema Firewall ...

Utilities

CCleaner 5.33 mit Malware infiziert

(25)

Information von SeaStorm zum Thema Utilities ...

Windows Server

Exchange Server 2016 Probleme auf Server 2016 mit iOS 11 Mailapp

Information von Oneplus zum Thema Windows Server ...

Internet

Pirate Bay lässt heimlich Krypto-Miner auf Nutzer-PCs laufen

(5)

Information von BassFishFox zum Thema Internet ...

Heiß diskutierte Inhalte
Utilities
CCleaner 5.33 mit Malware infiziert (25)

Information von SeaStorm zum Thema Utilities ...

Festplatten, SSD, Raid
gelöst Problem mit DELL 815R Server und Windows Bluescreen (24)

Frage von Leo-le zum Thema Festplatten, SSD, Raid ...

JavaScript
gelöst Kopierschutz auf Webseite (13)

Frage von honeybee zum Thema JavaScript ...

Windows Server
Änderung Subnetz an AD Standort (13)

Frage von hansdampf zum Thema Windows Server ...