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
GELÖST

Aus einem Textfile ne Eins löschen

Frage Entwicklung Batch & Shell

Mitglied: MarcelGausG

MarcelGausG (Level 1) - Jetzt verbinden

06.07.2007, aktualisiert 12:11 Uhr, 4242 Aufrufe, 3 Kommentare

Hallo ihr großen meister da draussen ...

ich bin leider ein totaler noob in sachen batch files schreiben .... deshalb bräucht ich doch mal die hilfe der community ...

zum szenario ( hört sich dramatischer an ;) )


wir kriegen von einem kunden immer bestelldaten in einem textfile die dann in unsere warenwirtschaft konvertiert wird ...

der anfang der files ist immer gleich .. :

UNB+UNOA:2+5450534000000:14+4260117670008:14+070705:0837+111+EANCOM'UNH+1+ORDERS

so ... nun können wir diese files nicht so bei uns implementieren da dieser Einser 1+EANCOM unsere programm stört ...

das heisst ... wir müssen jedes file öffnen .. die 1 per hand rauslöschen .... und dann ginge es .. sind aber dann doch ein paar bestellungen am tag ;) einfach nervig.... da dacht ich mir das es da doch bestimmt ne "einfache" lösung gibt....

ach ja ... die dateinamen sind nicht immer gleich ... also das wär zb einer IVSP5850.406598 der vordere teil ( IVSP5850 ) bleibt gleich ... der hintere ändert sich mit jeder bestellung ....

bitte um hilfe....

schon mal danke ..

Marcel
Mitglied: bastla
06.07.2007 um 10:36 Uhr
Hallo MarcelGausG!

Das folgende VB-Script ersetzt (nur) in der ersten Zeile der übergebenen Textdatei den Teil "1+EANCOM" durch "EANCOM". Die übergebene Datei wird unter "B-Dateiname" als Sicherungskopie behalten.
01.
'Remove1.vbs 
02.
If WScript.Arguments.Count < 1 Then 
03.
    WScript.Echo "Bitte eine Datei als Argument übergeben!" 
04.
    WScript.Quit(1) 
05.
Else 
06.
strInFile = WScript.Arguments(0) 
07.
End If 
08.
 
09.
Set fso = CreateObject("Scripting.FileSystemObject") 
10.
If Not fso.FileExists(strInFile) Then 
11.
    WScript.Echo "Die Datei " & strInFile & " wurde nicht gefunden!" 
12.
    WScript.Quit(1) 
13.
End If 
14.
 
15.
Set objInFile = fso.GetFile(strInFile) 
16.
strOutFile = objInFile.Path 
17.
If fso.FileExists("B-" & objInFile.Name) Then fso.DeleteFile("B-" & objInFile.Name) 
18.
objInFile.Name = "B-" & objInFile.Name 
19.
 
20.
aFileText = Split(fso.OpenTextFile(objInFile.Path, 1).ReadAll, vbCrLF) 
21.
aFileText(0) = Replace(aFileText(0), "++++1+EANCOM", "+++++EANCOM") 
22.
fso.OpenTextFile(strOutFile, 2, True).Write Join(aFileText, vbCrLF)
Verwendung: Entweder per Drag & Drop die Textdatei auf die Script-Datei (bzw eine Verknüpfung zu dieser) ziehen oder, wenn das Script zB als "C:\Scripts\Remove1.vbs" gespeichert wurde, aus einer Batchdatei/von der Kommandozeile mit:
01.
cscript //nologo "C:\Scripts\Remove1.vbs" "D:\Bestellungen\IVSP5850.406598"
Eine Batchdatei zum Bearbeiten aller Bestelldateien (des Ordners "D:\Bestellungen") könnte so aussehen:
01.
@echo off 
02.
pushd "D:\Bestellungen" 
03.
for /f "delims=" %%i in ('dir /b "IVSP5850.*"') do cscript //nologo "C:\Scripts\Remove1.vbs" "%%i" 
04.
popd 
05.
echo Bearbeitung abgeschlossen.
Grüße
bastla
Bitte warten ..
Mitglied: miniversum
06.07.2007 um 10:55 Uhr
Und hier die Pure-Batch lösung dazu.
01.
@echo off 
02.
set "filefilter=IVSP5850*" 
03.
 
04.
FOR /F "delims=" %%a in ('dir /B /A-D %filefilter%') do call:dofile "%%a" 
05.
goto:eof 
06.
 
07.
:dofile 
08.
set "line=" 
09.
FOR /F "delims=" %%i in ('type %1') do if not defined line set "line=%%i" 
10.
echo %line:~0,63%%line:~64%>"%~1.tmp" 
11.
more +1 %1>>"%~1.tmp" 
12.
move "%~1.tmp" %1 
13.
goto:eof
Hier wird immer in der ersten Zeile das 64. Zeichen (die "1") entfernt.
BEi mri wird allerdings die Orginal Datei gleich ersetzt. Willst du das ncith mußt du den move befehl weglassen.
Bitte warten ..
Mitglied: MarcelGausG
06.07.2007 um 12:11 Uhr
hallo bastla ...

du bist ne wucht ..... super.... klappt einwandfrei.... danke für die schnelle hilfe ...

*aufdiekniefall*

;)

cu
Bitte warten ..
Ähnliche Inhalte
Humor (lol)
gelöst Wer braucht ne Äpp? (2)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Off Topic
gelöst Beitrag löschen (2)

Frage von PronMaster zum Thema Off Topic ...

Batch & Shell
gelöst Löschen von Dateien nach bestimmten Zeitmuster (8)

Frage von NetzwerkDude zum Thema Batch & Shell ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Infineon TPMs unsicher! Bitlocker ggf. angreifbar

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Firewall

PfSense Repository für Version 2.3.x

(3)

Information von Dobby zum Thema Firewall ...

LAN, WAN, Wireless

WPA-2 hat erste Risse: KRACK

(7)

Information von the-buccaneer zum Thema LAN, WAN, Wireless ...

Hardware

GPD Pocket: Winziger Laptop für Wenig Tipper

(1)

Information von pelzfrucht zum Thema Hardware ...

Heiß diskutierte Inhalte
Windows Server
gelöst Gruppenrichtlinie greift nicht zu! (23)

Frage von Syosse zum Thema Windows Server ...

Microsoft Office
ICH BIN AM ENDE MEINES IT-WISSENS ANGELANGT!!!! (21)

Frage von KINGCELLO zum Thema Microsoft Office ...

Hosting & Housing
Mailserver Software Empfehlungen (21)

Frage von sunics zum Thema Hosting & Housing ...