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

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, 4212 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Windows Server
gelöst Windows 2012R2 kann Datei nicht löschen (2)

Frage von Akcent zum Thema Windows Server ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (28)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
Welches OS für Firmengeräte? (18)

Frage von MarkusVH zum Thema Windows 10 ...

Netzwerke
Abisolierwerkzeug (18)

Frage von SarekHL zum Thema Netzwerke ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (17)

Frage von bogi1102 zum Thema Exchange Server ...