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

Variable zwischenspeichern?

Frage Entwicklung Batch & Shell

Mitglied: ruebensau

ruebensau (Level 1) - Jetzt verbinden

05.08.2008, aktualisiert 20.08.2008, 4045 Aufrufe, 3 Kommentare

Hallo Jungs,

sehe gerade bestimmt den Wald vor lauter Bäumen nicht.

habe diesen Input:

A600,test1,name1
$$$$,test2,name2
$$$$,test3,name3
$$$$,test4,name4
$$$$,test5,name5
$$$$,test6,name6
$$$$,test7,name7
A700,test8,name8
$$$$,test9,name9
$$$$,test10,name10
$$$$,test11,name11
A800,test12,name12
$$$$,test13,name13
....
output soll so aussehen:

A600,test1,name1
A600test2,name2
A600test3,name3
A600test4,name4
A600test5,name5
A600test6,name6
A600test7,name7
A700,test8,name8
A700test9,name9
A700test10,name10
A700test11,name11
A800,test12,name12
A800test13,name13

ich habs mit der for /f schleife probiert

for /f "tokens=1-3 delims=," %%a in (b.log) do (
if not "%%a"=="$$$$" set "k=%%a"
echo %k%,%%b,%%c >> d.log
)

erstes feld wird genommen und in variable gespeichert
solange erstes feld = $$$$ ersetze es durch den wert in der variable
wenn erstes feld nicht $$$$ dann ersetze die variable durch den neuen wert
usw.
bekomme es aber irgendwie nicht hin

danke schonmal

Mit freundlichen Grüßen
Rübe
Mitglied: Biber
05.08.2008 um 18:01 Uhr
Moin Rübe,

da das Setzen und das Abfragen der Variablen %k% innerhalb einer CMD-Anweisung passiert, musst Du mit "DelayedExpansion" (=Auflösen einer Variablen erst beim Anfassen) arbeiten.
01.
@echo off & setlocal EnableDelayedExpansion 
02.
for /f "tokens=1-3 delims=," %%a in (b.log) do ( 
03.
   if "%%a"=="$$$$" set "k=%%a"   
04.
  echo !k!,%%b,%%c >>d.log 
05.
)
[ungetestet]

Grüße
Biber
Bitte warten ..
Mitglied: ruebensau
20.08.2008 um 10:05 Uhr
endlich wieder im Büro und danke Biber. Funktioniert wie alles von dir!

Eine syntaktische Frage hätte ich noch:
Wieso muss k in Ausrufezeichen stehen !k! und kann nicht wie ich es sonst kenne in Prozentzeichen stehen %k%?
Liegt es an dem EnableDelayedExpansion?

Gruß
Rübe
Bitte warten ..
Mitglied: Biber
20.08.2008 um 19:51 Uhr
Moin Rübe,

die etwas andere Schreibweise hat in der Tat mit der verzögerten Variablenauflösung zu tun.
Du findest Beispiele natürlich hier im Forum, aber eine brauchbare Hilfe auch am Cmd-Prompt bei Eingabe von SET /? so im unteren Hilfetextdrittel.

Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
DSL, VDSL

Telekom blockiert immer noch den Port 7547 in ihrem Netz

(3)

Erfahrungsbericht von joachim57 zum Thema DSL, VDSL ...

Ähnliche Inhalte
JavaScript
AngularJS Variable über Input in Funktion ausführen

Frage von badkilla zum Thema JavaScript ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst Selected Gridview Value in Variable schreiben (4)

Frage von reissaus73 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

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

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...