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, 4064 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

MfG
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 ..
Ähnliche Inhalte
Windows Tools
Zwischenspeicher TS RDP-Verbindung (3)

Frage von Yannosch zum Thema Windows Tools ...

Batch & Shell
gelöst Mit zusammengesetzter Variable auf andere Variable zugreifen (2)

Frage von abiber zum Thema Batch & Shell ...

TK-Netze & Geräte
gelöst Durchsage für ELA zwischenspeichern - Asterisk? (3)

Frage von BirdyB zum Thema TK-Netze & Geräte ...

VB for Applications
Auswahlliste mit variablen (3)

Frage von 94451 zum Thema VB for Applications ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...