Top-Themen

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

In eine TXT eine Zeile Einfügen und eine Counter in den folgenden Zeilen

Frage Entwicklung Batch & Shell

Mitglied: Underdog81

Underdog81 (Level 1) - Jetzt verbinden

27.04.2012 um 13:45 Uhr, 2950 Aufrufe, 9 Kommentare

Ich hab hier gute Erfahrungen gemacht und
wende mich nun wieder an euch.

Hallo,

Ich habe hier einen Handscanner (mobile) bei dem ich es nicht mit der Hersteller Software hinbekomme
das gewünschte Ergebnis zu erziehlen.

Hier ein Beispiel wie die Datei sein sollte:

K;Warenentnahme;10007;
D;1;4040056000759;20;Ja
D;2;4040056001169;10;Ja

Hier wie ich sie vom Scanner bekomme:

D;4040056000759;20;Ja
D;4040056001169;10;Ja


Wie man sieht fehlt die erste Zeile in der Datei
und in den folgezeilen die fortlaufende Nummer der Datensätze.
Ich könnte hier nur eine Zahl angeben, die immer gleich ist.
etwa so: (mit einer Null)
D;0;4040056000759;20;Ja
D;0;4040056001169;10;Ja

Ich hab jetzt an eine Batch gedacht, die mir die fehlen Daten einträgt.
Ist es überhaupt möglich mit einer Batch?

Bin für jede Hilfe Dankbar
Mitglied: 76109
27.04.2012 um 15:27 Uhr
Hallo Underdog81!

Unter der Annahme, das die Textzeile immer mit "D;" beginnt, könnte es mit diesem (*.vbs)-Skript funktionieren:
01.
Const FileIn = "E:\Test\Ein.txt" 
02.
Const FileOut = "E:\Test\Aus.txt" 
03.
 
04.
Dim Fso, File, Text, Textzeile, Counter 
05.
     
06.
Set Fso = CreateObject("Scripting.FileSystemObject") 
07.
     
08.
Set File = Fso.OpenTextFile(FileIn) 
09.
     
10.
Text = Split(File.ReadAll, vbCrLf):   File.Close 
11.
     
12.
Set File = Fso.CreateTextFile(FileOut) 
13.
     
14.
'Text in "" Entsprechend anpassen, damit die Anzahl der Speperatoren stimmen 
15.
File.WriteLine "K;Warenentnahme;10007;" 
16.
     
17.
Counter = 1 
18.
     
19.
For Each Textzeile In Text 
20.
    If Textzeile <> "" Then 
21.
        File.WriteLine Replace(Textzeile, "D;", "D;" & Counter & ";") 
22.
        Counter = Counter + 1 
23.
    End If 
24.
Next 
25.
     
26.
File.Close
Gruß Dieter
Bitte warten ..
Mitglied: Underdog81
27.04.2012 um 16:29 Uhr
DANKE didi1954 !! :D

Ja die Textzeilen fangen immer mit dem D; an.
Und es geht perfekt muss ich dazu sagen.

Ich bedanke micht sehr und wünsche ein entspanntes und langes Wochenende.
Bitte warten ..
Mitglied: 76109
27.04.2012 um 17:10 Uhr
Hallo Underdog81!

Jepp, gern geschehen

Wünsche Dir auch ein schönes sonniges Wochenende

Gruß Dieter
Bitte warten ..
Mitglied: bastla
27.04.2012 um 17:19 Uhr
Hallo Underdog81!

Nur der Vollständigkeit halber (und um die Frage
Ist es überhaupt möglich mit einer Batch?
zu beantworten ):
01.
@echo off & setlocal 
02.
set "Ein=D:\Ein.txt" 
03.
set "Aus=D:\Aus.txt" 
04.
set "Delim=;" 
05.
 
06.
>"%Aus%" echo K;Warenentnahme;10007; 
07.
for /f "tokens=1,2* delims=:%Delim%" %%a in ('findstr /n "^" "%Ein%"') do >>"%Aus%" echo %%b%Delim%%%a%Delim%%%c
Wie bei Dieters Ansatz gilt auch hier: Zeile 6 ggf anpassen ...
Und für alle, die's gerne kürzer mögen:
@>"D:\Aus.txt" (@echo K;Warenentnahme;10007;&@for /f "tokens=1,2* delims=:;" %%a in ('findstr /n "^" "D:\Ein.txt"') do @echo %%b;%%a;%%c)
Grüße
bastla
Bitte warten ..
Mitglied: Underdog81
27.04.2012 um 17:29 Uhr
Danke bastla

ich arbeite nämlich mmit einer batch die Programme nacheinander ab, daß die Leute nur noch einen Doppelklick
machen müssen.
Bitte warten ..
Mitglied: bastla
27.04.2012 um 17:30 Uhr
Hallo Underdog81!
ich arbeite nämlich mmit einer batch die Programme nacheinander ab
Das spräche noch nicht gegen die Verwendung des VBScripts - auf Wunsch ließe sich das auch vom Batch selbst erzeugen;etwas kompakter zB:
01.
@echo off & setlocal 
02.
set "Ein=D:\Ein.txt" 
03.
set "Aus=D:\Aus.txt" 
04.
 
05.
set C=%temp%\ConvertSannerCSV.vbs 
06.
 >%C% echo Set fso=CreateObject("Scripting.FileSystemObject"):Text=Split(fso.OpenTextFile("%Ein%").ReadAll,vbCrLf) 
07.
>>%C% echo Set File=fso.CreateTextFile("%Aus%"):File.WriteLine "K;Warenentnahme;10007;" 
08.
>>%C% echo For i=0 To UBound(Text):Z=Text(i):If Z^<^>"" Then:File.WriteLine "D;"^&i+1^&Mid(Z,2):End If:Next 
09.
cscript //nologo %C%
Annahme hier wie oben: Es gibt zwischen den einzelnen Zeilen der Datei keine Leerzeilen ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
27.04.2012 um 20:52 Uhr
Hallo bastla!

War mir schon klar, dass es mit Batch wesentlich kürzer geht. Zumindest, wenn Du sie schreibst

Annahme hier wie oben: Es gibt zwischen den einzelnen Zeilen der Datei keine Leerzeilen ...
Wenn die letzte Zeile einen Zeilenumbruch enthält, dann hat die letzte UBound-Zeile ein "" drinnen

Gruß Dieter
Bitte warten ..
Mitglied: bastla
27.04.2012 um 20:58 Uhr
Hallo Dieter!
Wenn die letzte Zeile einen Zeilenumbruch enthält, dann hat die letzte UBound-Zeile ein "" drinnen
Deswegen auch "zwischen den Zeilen" ...
War mir schon klar, dass es mit Batch wesentlich kürzer geht. Zumindest, wenn Du sie schreibst
Der Einzeiler ist ja nur Spaß - aber ein Batch wird so gut wie immer kürzer sein als ein VBScript (Ausnahme wären etwa Zeitberechnungen) - aber oft dafür länger laufen ...

Grüße
bastla
Bitte warten ..
Mitglied: Underdog81
30.04.2012 um 15:24 Uhr
Also ich hab ne Kombi aus beiden

Da es ein zusammenhängender Ablauf ist muss ich eh ein "wait" einbauen.
Deshlab ist hier die Zeit der Prozesse egal.

Aber es geht alles top muss ich sagen.
Ich steuer die Programme und das VBS über eine Batch mit einem wait befehl dazwischen.

So muss der User nur och warten bis alles wieder von alleine geschlossen wird.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Zeile mit Sonderzeichen in txt einfügen
gelöst Frage von FaysaxBatch & Shell1 Kommentar

Hallo miteinander, ich habe folgendes Problem: Ich habe eine xml Datei in eine txt umgewandelt. Nun möchte ich am ...

JavaScript
Zeile mit JS einfügen
gelöst Frage von lord-iconJavaScript3 Kommentare

Ich bau an ein JS Script, was mir eine Zeile einfügt (klappt mitunter auch). Siehe hier: 3 Probleme habe ...

Debian
Letzte Zeile lesen und einfügen
gelöst Frage von Fenris14Debian4 Kommentare

Guten Tag, ich versuche mich mal wieder ein wenig an Scripten und habe hier jetzt das Problem das ich ...

Batch & Shell
Mit Batch Zeilen aus TXT modifizieren
gelöst Frage von chef1568Batch & Shell4 Kommentare

Hallo zusammen, leider konnte ich mit den bisherigen Threads mein Problem bisher nicht lösen. Problemstellung: In einer Textdatei sind ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Windows 10
Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App
Tipp von kgbornWindows 107 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...