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

Rauten Automatisch entfernen

Frage Entwicklung Batch & Shell

Mitglied: Alcom-Pavel

Alcom-Pavel (Level 1) - Jetzt verbinden

07.10.2007, aktualisiert 08.10.2007, 3137 Aufrufe, 5 Kommentare

Hallo,

ich habe mal eine Frage ,

ich brüchte ein Script oder so das Automatisiert eine Datei "CMEDECHO.GDT" die in einem Ordner landet und folgenden Inhalt hat z.B.

01380006310
014810000139
01030001
0196228[#70]hallo
0186228Sonstiges
0096228
0096228
017620007102007
0198402[#70]hallo
011841070

Dann sollten alle Rauten (#)
entfernt werden.

und die Datei in einen anderen Ordner verschoben werden inkl. eine Sicherungkopie der Datei in einen Beliebigen Ordner.


Vielen Dank.

Gruß JMP
Mitglied: bastla
07.10.2007 um 22:53 Uhr
Hallo Alcom-Pavel!

Spontan würde mir als Lösung zu Deiner Fragestellung "sed" einfallen, aber per Batch lässt sich vielleicht auch etwas machen:
01.
@echo off & setlocal 
02.
set "In=D:\CMEDECHO.GDT" 
03.
set "CpDir=D:\Kopien" 
04.
set "Out=D:\Verschobene\CMEDECHO.GDT" 
05.
 
06.
if exist "%Out%" del "%Out%" 
07.
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%In%"') do set "Line=%%j" & call :ProcessLine "%%j" 
08.
move "%In%" "%CpDir%" 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
set "Line=%Line:#=%" 
13.
if %1=="" set Line= 
14.
(echo.%Line%)>>"%Out%"
Die "set"-Zeilen am Anfang dienen dem Festlegen der Eingabedatei, des Ordners für die Sicherungskopie und des Dateinamens (samt Pfad) der bearbeiteten Datei. Für letztere wäre zu überlegen, was mit einer bereits vorhandenen gleichnamigen Datei im Zielordner geschehen soll - in der aktuellen Fassung wird diese vorweg gelöscht, um für die neue Datei "Platz zu machen".

Soferne Deine Datenzeilen alle im Format dem Beispiel entsprechen, sollte der Batch eigentlich funktionieren, wobei leere Zeilen oder nur aus Leerzeichen bestehenden Zeilen ebenfalls erhalten bleiben müssten. Probleme würde es geben, wenn eine Zeile eine ungerade Anzahl von Anführungszeichen enthalten sollte.

Grüße
bastla
Bitte warten ..
Mitglied: TuXHunt3R
07.10.2007 um 23:07 Uhr
Alternativ könntest du auch alle Rauten entfernen, indem die das File mit Notepad öffnest, dann Ctrl+H drückst und im dortigen Fenster alle Rauten durch nichts ersetzt, sprich das untere Feld einfach leer lässt. Sollte auch klappen, ich verstehe aber, dass es bei weitem bequemer ist, wenn man das mit einem geplanten Task machen kann.
Bitte warten ..
Mitglied: Alcom-Pavel
08.10.2007 um 01:27 Uhr
Hallo bastla ,


funktioniert super! wenn du mir jetzt noch sagen könntest wie ich das als Schleife laufen lassen kann, und die Sicherungkopie Nummern bekommt denn solche Datein kommen sekündlich ca. 80 mal am tag in diesen Ordner.
Vielen vielen Dank.

Gruß JMP
Bitte warten ..
Mitglied: bastla
08.10.2007 um 07:05 Uhr
Hallo Alcom-Pavel!

Ungetesteter Entwurf mit Endlosschleife und laufender Nummer (Format: "000001"):
01.
@echo off & setlocal 
02.
set "InDir=D:\Ein" 
03.
set "InName=CMEDECHO" 
04.
set "InTyp=GDT" 
05.
 
06.
set "CpDir=D:\Kopien" 
07.
 
08.
set "OutDir=D:\Verschobene" 
09.
set "OutName=NeuerName" 
10.
set "OutTyp=GDT" 
11.
 
12.
set "Nr=1000001" 
13.
 
14.
set "In=%InDir%\%InName%.%InTyp%" 
15.
:Schleife 
16.
set "Out=%OutDir%\%OutName%_%Nr:~-6%.%OutTyp%" 
17.
if exist "%Out%" del "%Out%" 
18.
for /f "tokens=1* delims=:" %%i in ('findstr /n .* "%In%"') do set "Line=%%j" & call :ProcessLine "%%j" 
19.
move "%In%" "%CpDir%\%InName%_%Nr:~-6%.%InTyp%" 
20.
set /a Nr+=1 
21.
:Warte 
22.
ping 127.0.0.1 -n 30 >nul 
23.
if not exist "%In%" goto :Warte 
24.
goto :Schleife 
25.
 
26.
:ProcessLine 
27.
set "Line=%Line:#=%" 
28.
if %1=="" set Line= 
29.
(echo.%Line%)>>"%Out%"
Mit dem Wert nach "-n" in der "ping"-Zeile kannst Du die Länge der Pause nach jeder Datei festlegen (derzeit ca 30 Sekunden).

Grüße
bastla
Bitte warten ..
Mitglied: Alcom-Pavel
08.10.2007 um 07:52 Uhr
Hallo bastler,

hammer Hart wie lange ich so eine Lösung suche,
ich danke dir, wie gerne würde ich sowas auch können.

Dank und Gruß

JMP
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
IDE & Editoren
USB STICK Datei AUTOMATISCH beim anschliessen auf fremden PC öffnen (9)

Frage von Jwanner83 zum Thema IDE & Editoren ...

Batch & Shell
gelöst Appx aus Image auslesen und entfernen (9)

Frage von Markus2016 zum Thema Batch & Shell ...

CPU, RAM, Mainboards
CPU Lüfter von CPU entfernen (6)

Frage von uridium69 zum Thema CPU, RAM, Mainboards ...

Heiß diskutierte Inhalte
Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...

Peripheriegeräte
Wlan stört Funkmaus (11)

Frage von Falaffel zum Thema Peripheriegeräte ...

Peripheriegeräte
gelöst USB Festplatte verliert Laufwerksbuchstabe (9)

Frage von cese4321 zum Thema Peripheriegeräte ...