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

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

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

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

Frage von Raaja89 zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch FTP-Server Dateien ändern (1)

Frage von Marlon1 zum Thema Batch & Shell ...

Batch & Shell
Suchen, Ersetzen und Entfernen von Dateiinhalten auf Textbasis (1)

Frage von DanteManor zum Thema Batch & Shell ...

Batch & Shell
gelöst Textdateien vergleichen BATCH (2)

Frage von FeudelFred zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...