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, 4227 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
Hyper-V
Hyper-V Prüfpunkte lassen sich nicht löschen (1)

Frage von gFACEk zum Thema Hyper-V ...

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

Frage von NetzwerkDude zum Thema Batch & Shell ...

Windows 7
gelöst Batch für User-TEMP-Ordner und Inhalte löschen (2)

Frage von planetIT2016 zum Thema Windows 7 ...

Batch & Shell
Batch Datei um Windows Update zu löschen (1)

Frage von lordofremixes zum Thema Batch & Shell ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
NTFS und die Defragmentierung (26)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Zwei Subnetze mit je eigenem Router und Internetzugang verbinden (18)

Frage von hannsgmaulwurf zum Thema LAN, WAN, Wireless ...

Windows Server
WIndows Server 2016 core auf dem Intel NUC NUC5i5RYK i5 5250U (17)

Frage von IxxZett zum Thema Windows Server ...