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

Inhalt aus Text-Datei in Variablen schreiben mit batch

Frage Entwicklung Batch & Shell

Mitglied: Hans87

Hans87 (Level 1) - Jetzt verbinden

31.10.2013 um 08:16 Uhr, 1888 Aufrufe, 13 Kommentare, 2 Danke

Hallo,

ich habe eine Textdatei, die wie folgt aufgebaut ist

name;definition
name;definition
name;definiton

da ich diese datei über ein batch skript erstelle, kann sie beliebig lang sein.

Jetzt würde ich gern für jede in der Datei vorhandene Zeile eine Datei Anlegen, die 2 Variablen enthält.
die erste Variable soll den Namen beinhalten, die zweite die Definiton.

habe schon sämtliche Foren durchsucht aber nichts gefunden was mir da weiterhilft
kann mir da jemand helfen?
Mitglied: colinardo
31.10.2013, aktualisiert um 08:53 Uhr
Hallo chrisb87,
einfache FOR-Schleife sollte doch genügen:
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set cnt=1 
03.
for /f "usebackq tokens=1,2* delims=;" %%a in ("C:\Quelldatei.txt") do @( 
04.
  echo Name:%%a Definition:%%b>>neuedatei_!cnt!.txt 
05.
  set /a cnt+=1 
06.
)
In %%a ist jeweils der Name und in %%b die Definition jeder Zeile enthalten.

Grüße Uwe
Bitte warten ..
Mitglied: Hans87
31.10.2013 um 09:13 Uhr
Hallo Uwe,

zunächst danke für die schnelle Antwort, allerdings habe ich jetzt nur eine Ausgabedatei die wiefolgt aussieht:

Name:Beispiel1 Definition:Beispiel1-Definition
Name:Beispiel2 Definition:Beispiel2-Definition
Name:Beispiel3 Definition:Beispiel3-Definition

was ich eigentlich als Ausgabedatei gerne hätte wäre aber:

Datei1:

SET VAR1=Beispiel1
SET VAR2=Beispiel1-Definition

Datei2:
SET VAR1=Beispiel2
SET VAR2=Beispiel2-Definition


ist so etwas möglich?

Gruß Chris
Bitte warten ..
Mitglied: colinardo
31.10.2013, aktualisiert um 10:45 Uhr
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set /a cnt=1 
03.
for /f "usebackq tokens=1,2* delims=;" %%a in ("C:\Quelldatei.txt") do @( 
04.
  echo set VAR1=%%a>neuedatei_!cnt!.txt 
05.
  echo set VAR2=%%b>>neuedatei_!cnt!.txt 
06.
  set /a cnt+=1 
07.
)
Bitte warten ..
Mitglied: Hans87
31.10.2013 um 09:32 Uhr
jetzt bekomme ich 2 dateien,

in der einen stehen alle Namen und in der anderen alle Definitionen.

woher kommt denn das %%b?

denn ich will ja eigentlich eine datei haben in der VAR1 der name und VAR2 die dazugehörige definition ist.
Bitte warten ..
Mitglied: colinardo
31.10.2013 um 10:12 Uhr
kann aber nicht sein, hier gehts problemlos ...
Bitte warten ..
Mitglied: Hans87
31.10.2013 um 10:29 Uhr
der counter funktioniert bei mir nicht... ich weiß aber nicht wieso
Bitte warten ..
Mitglied: colinardo
31.10.2013 um 11:06 Uhr
Zitat von Hans87:
der counter funktioniert bei mir nicht... ich weiß aber nicht wieso
dann hast du das
setlocal ENABLEDELAYEDEXPANSION 
nicht mit eingebaut
Bitte warten ..
Mitglied: Hans87
31.10.2013 um 11:43 Uhr
das ist der code:

setlocal ENABLEDELAYEDEXPANSION

SET FIND1=G:\Ausgabe\conf1_%LAND%_!counter!.txt



.....
.....

.....

set /a counter=1
for /f "usebackq tokens=1* delims=;" %%a in (%OUTPUT%) do @(
echo set VAR1=%LAND%>>%FIND1%
echo set VAR2=%%a>>%FIND1%
echo set VAR3=%%b>>%FIND1%
set /a counter+=1
echo %counter%
)


aber der counter funktioniert nicht
Bitte warten ..
Mitglied: colinardo
31.10.2013, aktualisiert um 12:04 Uhr
oh jee, schmeiß den Code am besten ganz schnell weg, da sind zu viele Fehler drin. Erstens erzeugst du die Counter-Variable erst nach dem eigentlichen Verwenden und dann verwendest du Prozentzeichen in der FOR-Schleife um den Counter auszugeben. Du hast das Prinzip des Delayed Expansion noch nicht verstanden. Und in der FOR-Schleife hast du auch die tokens Parameter verändert...
so sollte das bei dir aussehen
01.
setlocal ENABLEDELAYEDEXPANSION 
02.
set /a counter=1 
03.
SET "FIND1=G:\Ausgabe\conf1_%LAND%_" 
04.
for /f "usebackq tokens=1,2* delims=;" %%a in ("%OUTPUT%") do @( 
05.
  echo set VAR1=%LAND%>"%FIND1%!counter!.txt" 
06.
  echo set VAR2=%%a>>"%FIND1%!counter!.txt" 
07.
  echo set VAR3=%%b>>"%FIND1%!counter!.txt" 
08.
  set /a counter+=1 
09.
)
und bitte benutze in Zukunft die Code-Tags hier im Forum um deinen Code zu formatieren, ansonsten gehen Sonderzeichen verloren.Danke.

Grüße Uwe
Bitte warten ..
Mitglied: Hans87
31.10.2013 um 16:22 Uhr
jetzt funktioniert es. Aber wieso bekomme ich hinter jeder zeile die in der Ausgabe-datei dann ist ein leerzeichen?

das ist nämlich suboptimal, da ich ja mit den variablen weiterarbeiten will :/
Bitte warten ..
Mitglied: colinardo
31.10.2013, aktualisiert um 16:44 Uhr
wenn du meinen Code so wie er war übernommen hast darf dies eigentlich nicht sein. Wenn nicht, hast du sehr wahrscheinlich zwischen der Variablen und der Ausgabeumleitung ein Leerzeichen eingefügt:

So ist ein Leerzeichen hinter der Variablen in der Ausgabedatei
01.
echo set VAR2=%%a >>"%FIND1%!counter!.txt" 
und so nicht:
01.
echo set VAR2=%%a>>"%FIND1%!counter!.txt" 
Was auch noch sein kann ist das deine Quelldatei Leerzeichen zwischen den Semikolons hat. Wenn das der Fall ist muss man diese noch folgendermaßen eliminierenDabei dürfen dann aber weder Name noch Definition ein Leerzeichen enthalten, diese werden dann sonst auch entfernt)
01.
  set name=%%a 
02.
  set name=!name: =! 
03.
  set definition=%%b 
04.
  set definition=!definition: =! 
05.
  echo set VAR1=!name!>>"%pfad%!cnt!.txt" 
06.
  echo set VAR2=!definition!>>"%pfad%!cnt!.txt" 
07.
  set /a cnt+=1
Grüße Uwe
Bitte warten ..
Mitglied: Hans87
01.11.2013 um 07:51 Uhr
ich habe den code so wie er war übernommen. (habe keine Leerzeichen zwischen der variablen und der Ausgabeumleitung...
meine Quelldatei hat auch keine Leerzeichen zwischen den semikolons...
Bitte warten ..
Mitglied: Hans87
01.11.2013 um 08:18 Uhr
ich hab den fehler gefunden...

hatte nach dem Anführungszeichen hinter txt überall leerzeilen drin.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Mehrzeiligen Text in eine Text-Datei schreiben (Win7 64)
gelöst Frage von mobby83Batch & Shell5 Kommentare

Hallo zusammen, ich habe eine ältere Batch, die eine Ordnerstruktur erstellt. Dieses Batch soll nun zusätzlich eine "DirInfo.txt" erstellen. ...

Batch & Shell
In Batch eine Text Variable und ein Array vergleichen
Frage von DrMarksmanBatch & Shell5 Kommentare

Hallo Leute! Ich habe mich wieder zu meinen Ursprüngen des Programmierens zurück begeben und bin dabei ein kleines Programm ...

Batch & Shell
Batch - Variable in bestimmte Textzeile schreiben
Frage von iWolf2015Batch & Shell4 Kommentare

Hallo, ich möchte gerne eine Variable in die n-te Zeile eines .txt Dokumentes schreiben. Ich habe schon verschiedene Ansätze ...

Batch & Shell
Inhalt einer .txt als eine Variable setzen mit Batch
gelöst Frage von AlexIOTBatch & Shell3 Kommentare

Hallo Zusammen, In der Variable.txt steht immer nur ein einziger Rechnername! - wie folgt: EW085IDFV001 Ich möchte das dieser ...

Neue Wissensbeiträge
MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 5 StundenMikroTik RouterOS4 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 6 StundenSicherheit

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Administrator.de Feedback

Entwicklertagebuch: Die Startseite wurde überarbeitet

Information von admtech vor 8 StundenAdministrator.de Feedback9 Kommentare

Hallo Administrator User, mit dem Release 5.7 haben wir unsere Startseite überarbeitet und die Beiträge und Fragen voneinander getrennt. ...

Vmware

VMware Desktopprodukte sind verwundbar

Information von Penny.Cilin vor 13 StundenVmware

Die VMware-Anwendungen zum Umgang mit virtuellen Maschinen Fusion, Horizon Client und Workstation sowie die Plattform NSX sind verwundbar. Davon ...

Heiß diskutierte Inhalte
Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail
Frage von ahstaxVisual Studio24 Kommentare

Hallo, ich möchte gerne ein vb.net-Tool schreiben, das am Ende eine Outlook-E-Mail erzeugt. Grundsätzlich ist mir klar, wie das ...

Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server16 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows Netzwerk
Netzwerk Neustrukturierung
Frage von IT-DreamerWindows Netzwerk16 Kommentare

Hallo verehrte Community und Admins, bei uns im Haus steht eine Neustrukturierung an. Dafür benötige ich von euch ein ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...