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

Per .bat oder .vbs 2 Spalten mit jeweils gleichem inhalt in eine vorhande csv Datei einfügen

Frage Entwicklung Batch & Shell

Mitglied: Addison

Addison (Level 1) - Jetzt verbinden

01.06.2010 um 13:54 Uhr, 5359 Aufrufe, 17 Kommentare

Hi@all

Ich habe folgendes Problem:

ich benötige ein Script, das in eine vorhandene Datei 2 Spalten einfügt und diese mit einem Bestimmten Wert füllt.

Leider habe ich von der Programiersprache nur Newbiekenntnisse.

die Suche hat mich auch nicht wirklich weitergebracht.

ich habe eine .txt date mit Semikolon getrennt, bei der ich in jeder Zeile zwei spalten einfügen möchte die mit dem gleichen Werten gefüllt werden.


Beispiel:


SpalteA;SpalteB;SpalteC;SpalteD;
test1;test2;test3;
test4;test5;test6;

jetzt möchte ich vor Spalte A noch zwei weitere Spalten eingefügt haben die dann Lauten Name1;Name2;

Name1 und Name2 soll in allen Zeilen derselbe bleiben.

'Wäre super wenn mir da jemand helfen könnte.

Idealerweise auch mir erklärung des scriptes, damit ich auch was lernen kann
Mitglied: 60730
01.06.2010 um 14:00 Uhr
Servus,

das sollte man relativ einfach mit den suchwörtern csv suchen ersetzen hier finden können.

Für eine einzelne .txt wird sich keiner die Mühe machen ein script zu schreiben, sondern:

  • diese txt in Excel importieren
  • die beiden Spalten dazumachen
  • mit einem Autowert füllen
  • als .txt exportieren

Ist bedeutend einfacher, sauberer (denn auch scripte machen nur das, was Sie sollen) und ressourcenschonender für alle

Gruß
Bitte warten ..
Mitglied: Addison
01.06.2010 um 14:04 Uhr
ich muss das nicht nur einmal machen, sondern am laufendem Band.

Die Grunddatei bleibt immer dieselbe nur mit anderem Inhalt.

Klar könnte ich jedesmal mit Excel arbeiten, aber das nervt auf die Dauer Darum will ich es mir mit einem Script vereinfachen.
Bitte warten ..
Mitglied: schuhmann
01.06.2010 um 14:13 Uhr
Benutz doch einfach in Excel den Makrorekorder.
Starte die Aufnahme, öffne deine Datei, Text in Spalten, 2 Spalten einfügen, Text eingeben, Ausfüllen.
Sollte ziemlich fix gehen.
Bitte warten ..
Mitglied: Addison
01.06.2010 um 14:19 Uhr
Ich möchte doch einfach nur ein Script oder eine Anleitung, oder einen Link wie ich das realisieren kann.

Klar kann ich das auch über ein Makro ausführen, aber dann muss ich jedesmal Excel öffnen die txt Datei importieren, das makro drüber laufen lassen, die datei schließen.

das würde länger dauern als wenn ich einen doppelklick auf ein Icon auf meinem Desktop mache.
Bitte warten ..
Mitglied: schuhmann
01.06.2010 um 14:25 Uhr
Das kannst du doch alles mit nem Makro machen.
Erstell dir einfach eine Makro.xls.
Dann machst du ein Makro und nennst es Auto_open. Dadurch wird das Makro direkt gestartet sobald du die XLS aufrufst.
Mit dem Makro kannst du dann deine txt öffnen, einlesen,....
Dann kannst du mit dem Makro Speichern unter machen und die Arbeitsmappe und Excel wieder schließen lassen mit close.
Alles voll automatisch. Du musst dann nur deine XLS andrücken und der Rest geht automatisch.
Bitte warten ..
Mitglied: Biber
LÖSUNG 01.06.2010, aktualisiert 13.04.2015
Moin Addison,

ich weiss jetzt nicht, warum die Jungs & Mädels dir nun unbedingt eine turbodynamische Dreigang-Sensitiv-Automatik andrehen wollen.

Demo am CMD-Prompt:
> rem Originaldatei 
>for /f "delims=" %i in (e:\schnipsel\addison.csv) do @echo %i 
SpalteA;SpalteB;SpalteC;SpalteD; 
test1;test2;test3; 
test4;test5;test6; 
 
 
> REM Zwei konstante neue "Spalten" dazugemogelt. 
>for /f "delims=" %i in (e:\schnipsel\addison.csv) do @echo Name1;Name2;%i 
Name1;Name2;SpalteA;SpalteB;SpalteC;SpalteD; 
Name1;Name2;test1;test2;test3; 
Name1;Name2;test4;test5;test6;
Das Ergebnis wird jetzt ja auf den Bildschirm ausgegeben.
--> also sollte noch ans Ende der Zeile ein Umleitungsbefehl wie z.B. >X:\ErweiterteDateien\NeueAddison.csv

Als Batchvariante wären zwei Prozentzeichen statt eines vonnöten bei der Laufvariablen %i.

Grüße
Biber
Bitte warten ..
Mitglied: 60730
01.06.2010 um 14:44 Uhr
Zitat von Biber:
Moin Addison,

ich weiss jetzt nicht, warum die Jungs & Mädels dir nun unbedingt eine turbodynamische Dreigang-Sensitiv-Automatik
andrehen wollen.

Salü Biber,

weil es mit der Dreigang-Sensitiv-Automatik einfacher ist
Ok "Noch" einfacher ists natürlich sich den bequemen, schreib mal und schreibs dann bitte auch so, dass ich was lerne Vollautomatikkurs zu wählen

Grüße
Biber

zurück
Bitte warten ..
Mitglied: Addison
01.06.2010 um 14:50 Uhr
ich hab zwar keine Ahnung was du für ein Problem hast aber gesucht habe ich schon eine Menge. ich habe nur leider nicht die Programierkenntnisse die ich hierfür bräuchte.

Aber es gibt ja zum Glück Leute die Hilfreich sind.

ich will kein fertiges Script, es reicht mir wenn ich Tipps bekomme mit welchen Behfehlen ich das hinbekomme.

@Biber Vielen Dank ich probier gleich mal aus.
Bitte warten ..
Mitglied: 60730
01.06.2010 um 15:00 Uhr
Zitat von Addison:
ich hab zwar keine Ahnung was du für ein Problem hast

"entspann" dich mal
ich hab nur das "Problem" dass ich nebenbei auch arbeite und mit einer Zeile die da sinnngemäß lautet:
Ich hab eine .txt möglicherweise etwas anderes interpretiert habe, das du gemeint hast.

aber gesucht habe ich schon eine Menge
Naja aber bestimmt nicht hier mit den oben von mir genannten Suchwörtern
Es gab mal eine Zeit, da wurden unsere fleissigen Biber & Bastla tagtäglich mit immer den gleichen "such mir was und ersetze es" vollgeschrieben ;-(

ich habe nur leider nicht die Programierkenntnisse die ich hierfür bräuchte.

Nungut, aber die häts ja mit dem suchen auch nicht gebraucht

Aber es gibt ja zum Glück Leute die Hilfreich sind.

Bin ich eigentlich üblicherweise auch, aber manchmal kommt einem die eigene Arbeit dazwischen.
Und auch Biber hat dir einen Bärendienst erwiesen - denn ohne eine Abfrage, ob denn diese .txt bereits die zusätzlichen Werte hat und in dem Fall nix zu tun ist - würde ich das nicht machen

ich will kein fertiges Script, es reicht mir wenn ich Tipps bekomme mit welchen Behfehlen ich das hinbekomme.

Gib mal:
find /?
sowohl in der Dosbox, als auch hier in der Suche ein.

Gruß
Bitte warten ..
Mitglied: LotPings
01.06.2010 um 15:38 Uhr
Zitat von 60730:
Gib mal:
find /?
sowohl in der Dosbox, als auch hier in der Suche ein.
Hallo @ All,

Da "DosBox" ja inzwischen als 3rd Party Programm existiert, würde ich eine Bezeichnung "Eingabeaufforderung", "Console" oder "CMD-Shell" dem eher unprofessionellen DosBox vorziehen

Konkret wäre hier, das ja auch nur eine der neuen Spalten vorhanden sein könnte, findstr geeigneter.

01.
Echo off 
02.
:: Dateiname zum Erweitern per Parameter übergeben 
03.
Set "InFile=%~1"  
04.
:: Neuer Dateiname mit angehängtem _X 
05.
Set "OutFile=%~dpn1_X%~x1" 
06.
:: Erste Zeile (Header) Einlesen 
07.
Set /P Header=<"%InFile%" 
08.
:: Prüfen ob neue Spalten schon im Header vorhanden, wenn ja Hinweis und Exit 
09.
Echo %Header%|Findstr /i "Name1 Name2" >NUL 2>&1 && (Echo Spalten schon da&Exit /B 1) 
10.
:: Neue Datei zurücksetzen 
11.
Type NUL >"%OutFile%" 
12.
:: Allen Zeilen neue Spalten voranstellen 
13.
for /f "usebackq delims=" %%A in ("%InFile%") do >>"%OutFile%" Echo Name1;Name2;%%A 
14.
:: Testausgabe alte und neue Datei 
15.
type "%InFile%" "%OutFile%"
Gruß
LotPings

Edit: PS: Für nicht im Programmieren bewanderte wäre ein Programm wie CSV-Editor noch zu empfehlen.
Bitte warten ..
Mitglied: Addison
01.06.2010 um 15:47 Uhr
@Timo

sorry sollte kein Angriff sein.

ich habe heut schon über ne stunde gegoogelt und nix brauchbares für mein Prob. gefunden, sondern nur ähnliches, wobei die Befehle mir noch fremd sind.
Bitte warten ..
Mitglied: Addison
01.06.2010 um 16:23 Uhr
for /f "delims=" %%i in (c:\test\a.txt) do @echo Name1;Name2;%%i>c:\Test\test.txt

klappt wunderbar!!!

nur leider nimmt er nur die letzte Zeile aus meiner Ursprungsdatei
Bitte warten ..
Mitglied: schuhmann
01.06.2010 um 16:39 Uhr
du musst ein >> bei der Ausgabe machen, also >>C:\test\test.txt
">" ist ersetzen
">>" ist anhängen
Bitte warten ..
Mitglied: 60730
01.06.2010 um 16:51 Uhr
Zitat von LotPings:
Da "DosBox" ja inzwischen als 3rd Party Programm existiert, würde ich eine Bezeichnung "Eingabeaufforderung", "Console" oder "CMD-Shell" dem eher unprofessionellen DosBox vorziehen

[OT]
naa gut, aber ich nenne trotzdem immer noch so, auch wenn irgendwann einer der beiden Klitsch Kos ne Bude aufmacht und die so nennt - mir egal
Edit: PS: Für nicht im Programmieren bewanderte wäre ein Programm wie CSV-Editor noch zu empfehlen.

Nö - der ist auch für im programmieren - *hust* scripten bewanderte durchaus ein nettes Werkzeug.
[/OT]

Ob nun find oder findstr ist in dem fall doch Jacke wie Hose
Bitte warten ..
Mitglied: Addison
01.06.2010 um 16:54 Uhr
Vielen Dank!!! so ists Perfekt
Bitte warten ..
Mitglied: Biber
02.06.2010 um 10:35 Uhr
Moin Addison,

auch wenn schon alles "gelöst" ist, noch eine Ergänzung zum Neuerstellen/Anfügen mot den Pipes ">" und ">>".

Bei der ">>"-Variante, die du jetzt (noch zu deiner Zufriedenheit) verwendest, werden neue Zeilen an eine vorhandene Datei dieses Namens angehängt.
Okay, natürlich nur dann, wenn denn bereits eine existiert - sonst wird eine eine neue erstellt.

Falls du aber in deinem Szenario aus Versehen deinen Oneliner 2x startest, dann hast du bei 100 Original-Zeilen dann 200 mutierte Zeilen in deiner neuen Textdatei.

Deshalb würde ich schon die ">" [=Neuerstellen] statt ">>" [=Anfügen]-Pipe verwenden.

Alledings soll sich die ">"-Pipe ja auf das Ergebnis der gesamten FOR-Anweisung beziehen, also musst du das auch dadurch deutlich machen, dass du die ganze FOR-Anweisung [quasi als Gesamtkunstwerk ] in Klammern setzt.

Demo:
01.
>for /f "delims=" %i in (e:\schnipsel\addison.csv) do @echo Name1;Name2;%i 
02.
Name1;Name2;SpalteA;SpalteB;SpalteC;SpalteD; 
03.
Name1;Name2;test1;test2;test3; 
04.
Name1;Name2;test4;test5;test6; 
05.
 
06.
(=10:32:00  D:\temp=) 
07.
>(for /f "delims=" %i in (e:\schnipsel\addison.csv) do @echo Name1;Name2;%i) >AddisonNeu.csv 
08.
 
09.
(=10:32:46  D:\temp=) 
10.
>type AddisonNeu.csv 
11.
Name1;Name2;SpalteA;SpalteB;SpalteC;SpalteD; 
12.
Name1;Name2;test1;test2;test3; 
13.
Name1;Name2;test4;test5;test6;
Grüße
Biber
Bitte warten ..
Mitglied: LotPings
06.06.2010 um 13:46 Uhr
Zitat von 60730:
Hab das erst jetzt registriert,
Ob nun find oder findstr ist in dem fall doch Jacke wie Hose
nicht ganz, bei der Oder-Abfrage von zwei Begriffen kommt einem da "findstr.exe" by default sehr entgegen.

Gruß
LotPings
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Per Batch eine Spalte in eine CSV Datei einfügen
gelöst Frage von mayli01Batch & Shell13 Kommentare

Hallo Forum :) Folgende Ausgangssituation. Ich habe eine CSV Artikelliste mit insgesamt 9 Spalten, einer Kopfzeile und etwa 50 ...

VB for Applications
Bestimmte Spalten aus CSV-Datei auslesen (VBS)
gelöst Frage von GurkenhobelVB for Applications9 Kommentare

Hallo Community, wieder benötige ich einmal kompetente Hilfe. Mein Script zum Auslesen bestimmte Spalten aus CSV-Dateien (über 200 " ...

Windows 7
Jeweils gleiche Datei in User-Profile
Frage von DanielBodenseeWindows 74 Kommentare

Hallo zusammen, ich bin in unserem Firmennetzwerk auf der "Suche" nach Notebooks, die von mehr als einem Anwender genutzt ...

VB for Applications
CSV Datei mit VBS auslesen
Frage von scorpionesc83VB for Applications4 Kommentare

Hallo zusammen, ich bin in Sachen VBS ein totaler Anfänger und hoffe, dass ihr mir bei einem Problem helfen ...

Neue Wissensbeiträge
Windows 10

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

Tipp von kgborn vor 1 TagWindows 106 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 ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing7 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...