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, 3141 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
Ähnliche Inhalte
Outlook & Mail
Outlook 2016 - Entfernen des Löschbuttons in Nachrichtenzeile (1)

Frage von ArnoNymous zum Thema Outlook & Mail ...

Windows 7
gelöst Windows Explorer, wie untere Infoleiste entfernen? (2)

Frage von Server4Alle zum Thema Windows 7 ...

Outlook & Mail
Exchange Konten Sauber aus Outlook entfernen (6)

Frage von MultiStorm zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Google Android
gelöst Android-Handy versehentlich (dauerhaft) gesperrt? (23)

Frage von FA-jka zum Thema Google Android ...

DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

Batch & Shell
gelöst Ordner und Datei Name gleich (BATCH) (12)

Frage von clragon zum Thema Batch & Shell ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...