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

aus Textdatei Werte aus Anführungszeichen in Variablen schreiben

Frage Entwicklung Batch & Shell

Mitglied: Paddyville

Paddyville (Level 1) - Jetzt verbinden

13.02.2009, aktualisiert 22:28 Uhr, 4545 Aufrufe, 11 Kommentare

Hi an alle,

ich habe ein kleines Problem was ich mit der Suchfunktion zwar gefunden habe, allerdings nicht lösen konnte.
In einer Textdatei steht in dem Format "Wert1","Wert2","Wert3", .....,"Wert12".
Ich möchte am liebsten die einzelnen Werte in Variablen sehen.

Probiert habe ich diverse Lösungen mit Sonderzeichen löschen und dann einlesen, allerdings ohne erfolg.

Hat jemand eine Idee, wie ich das machen kann?

Viele Grüße aus Hamburg
Mitglied: bastla
13.02.2009 um 22:38 Uhr
Hallo Paddyville und willkommen im Forum!

Wenn es genau 12 Werte sind, dann etwa so:
01.
@echo off & setlocal 
02.
set "Datei=D:\Deine Datei.txt" 
03.
 
04.
for /f "usebackq delims=" %%i in ("%Datei%") do call :ProcessLine %%i 
05.
goto :eof 
06.
 
07.
:ProcessLine 
08.
for /L %%a in (1,1,9) do call set "W%%a=%%~%%a" 
09.
shift 
10.
set "W10=%~9" 
11.
shift 
12.
set "W11=%~9" 
13.
shift 
14.
set "W12=%~9" 
15.
echo %W1%_%W2%_..._%W12% 
16.
goto :eof
[Edit] Durch Verwendung der "for /L"-Schleife noch etwas kürzer gefasst ... [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: Paddyville
13.02.2009 um 22:44 Uhr
Hallo bastla,

Vielen Danke für die schnelle Hilfe.
Ich bekomme eine Fehlermeldung nach den ausführen.

C:\pacs>?@
Der Befehl "?@" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Lösche ich @echo of und lasse nur setlocal stehen kommt:

C:\pacs>?s
Der Befehl "?s" ist entweder falsch geschrieben oder
konnte nicht gefunden werden.

Sieht für mich echt komisch aus. Ist bei der Maschine ansich was faul bei mir?
Bitte warten ..
Mitglied: bastla
13.02.2009 um 22:50 Uhr
Hallo Paddyville!

Kann ich leider nicht nachvollziehen.

Lass Dir vielleicht einmal den "Quelltext" des Batches anzeigen und kopiere den Code von dort ....

Grüße
bastla
Bitte warten ..
Mitglied: Paddyville
13.02.2009 um 23:01 Uhr
Hallo bastla,

reboot und jetzt gehts wieder.
Ich kriege nur bei beiden Versionen keine Ausgabe.

Also das letzte was ich sehe ist
for /F ...
goto :eof

und das wars.
Bitte warten ..
Mitglied: bastla
13.02.2009 um 23:07 Uhr
Hallo Paddyville!

"for /f" solltest Du eigentlich gar nicht sehen ...

Wenn Du von der Kommandozeile testest (und das ist für einen Batch eigentlich immer zu empfehlen), kannst Du durch Ändern des "echo off" auf "echo on" jeden Befehl vor der Ausführung anzeigen lassen und so den Ablauf besser nachvollziehen.

Grüße
bastla
Bitte warten ..
Mitglied: Paddyville
13.02.2009 um 23:17 Uhr
Hallo bastla,

ich hab das Echo jetzt an gemacht.

Ausgabe sieht so aus:

C:\Temp>test1.bat

C:\Temp>set "Datei=test.dat"

C:\Temp>for /F "usebackq delims=" %i in ("test.dat") do call :ProcessLine %i

C:\Temp>goto :eof

C:\Temp>
Bitte warten ..
Mitglied: bastla
13.02.2009 um 23:30 Uhr
Hallo Paddyville!

Dieses Ergbenis solltest Du eigentlich nur erhalten, wenn die "test.dat" leer ist oder aber Unicode enthält - in letzterem Fall versuchsweise
type test.dat>test1.dat
und dann mit "test1.dat" testen.

Grüße
bastla
Bitte warten ..
Mitglied: Paddyville
13.02.2009 um 23:40 Uhr
Dankeschön bastla!
Es scheint dann unicode zu sein.
Jetzt wundert es mich auch nicht, dass die Lösungen die ich vorher von dir gefunden hatte nicht funktionierten.
Bitte warten ..
Mitglied: bastla
13.02.2009 um 23:47 Uhr
Hallo Paddyville!

Die Konvertierung per "type" lässt sich in den Batch integrieren:
01.
@echo off & setlocal 
02.
set "Datei=D:\test.dat" 
03.
 
04.
set DateiTemp=%temp%\Daten.dat 
05.
type "%Datei%">%DateiTemp% 
06.
 
07.
for /f "usebackq delims=" %%i in ("%DateiTemp%") do call :ProcessLine %%i 
08.
del %DateiTemp% 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
for /L %%a in (1,1,9) do call set "W%%a=%%~%%a" 
13.
shift 
14.
set "W10=%~9" 
15.
shift 
16.
set "W11=%~9" 
17.
shift 
18.
set "W12=%~9" 
19.
echo %W1%_%W2%_..._%W12% 
20.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Paddyville
14.02.2009 um 00:24 Uhr
Hallo bastla,

ich habe das script jetzt soweit fertig. Danke nochmal für den type Tipp.

Hast du zufällig noch eine Idee, wie man mit ä ö ü ß umgeht?

Damit könnte ich gleich ein zweites Problem erschlagen.

Danke und Gruß aus HH!
Bitte warten ..
Mitglied: bastla
14.02.2009 um 00:28 Uhr
Hallo Paddyville!

Schreib an den Anfang des Batches ein
chcp 1252 >nul
Damit änderst Du die Codepage auf "Windows"-Format (ANSI).

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Textdatei zeilenweise in Variable schreiben
gelöst Frage von goodbytesBatch & Shell20 Kommentare

Hallo, mit einer Batch möchte ich mehrere Laufwerke mappen, abhängig vom Usernamen. Klar könnte ich auch für jeden User ...

PHP
Wert in Variable schreiben, abfragen, ausgeben
Frage von wescraven07PHP4 Kommentare

Moin Developer, ich hab gerade ein Problem, mit einem Wert, der aus Magento kommt, den ich in eine Variabel ...

Batch & Shell
Batch um Satz zwischen Anführungszeichen aus 1. Zeile in Textdatei lesen
gelöst Frage von georg2204Batch & Shell3 Kommentare

Hallo, nach langem Suchen und Probieren komme ich leider nicht mehr weiter. Ich habe eine Textdatei, aus dieser soll ...

Batch & Shell
Dateierweiterungen in eine Textdatei schreiben
gelöst Frage von joe65Batch & Shell3 Kommentare

Hallo, ich hab nach längerer Zeit wieder mal ein Batch-Problem. Ich möchte alle Dateierweiterungen (txt, docx, jpg, etc.) die ...

Neue Wissensbeiträge
Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 2 StundenVerschlüsselung & Zertifikate

Interessant SSH-Kommando in CMD.exe und PowerShell

Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement17 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...