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

Teil aus txt auslesen

Frage Entwicklung Batch & Shell

Mitglied: murphy1

murphy1 (Level 1) - Jetzt verbinden

25.07.2012, aktualisiert 10:31 Uhr, 2720 Aufrufe, 8 Kommentare

Ich habe schon seit gestern morgen gesucht, finde aber keine Lösung dafür.

Ich habe eine TXT mit dem Inhalt eines Dir Befehls.
Nun möchte ich den Dateinamen aus dieser TXT auslesen.
01.
 Datenträger in Laufwerk I: ist Global 
02.
 Volumeseriennummer: 5EFD-72A8 
03.
 
04.
 Verzeichnis von I:\"PFAD" 
05.
 
06.
18.01.2012  14:23               658 CF11M100_"sn"_TempCal-TTU_"YYYYMMDD"_"hhmm".xml 
07.
               1 Datei(en),            658 Bytes 
08.
               0 Verzeichnis(se), 248'206'131'200 Bytes frei
Es befindet sich nie mehr als eine Datei mit der Serienummer in einem Verzeichnis.
Sonst wird der Ablauf sowiso unterbrochen.

CF11M100 ist statisch
"sn" ist dynamisch aber bekannt
TempCal-TTU ist statisch
und der Rest ist dynamisch und unbekannt. (existiert auch nicht immer)

Nun würde ich gerne den ganzen Dateinamen (CF11M100_"sn"_TempCal-TTU_"YYYYMMDD"_"hhmm".xml) in eine Variable einlesen.

Ich brauche den ganzen Dateinamen in einer Variable, weil ich ihn danach einem CommandLineTool übergeben muss.
Da funktioniert es nicht wenn man es mit '*' schreibt.
Mitglied: Sheogorath
25.07.2012 um 09:23 Uhr
Halloechen,

habe ich inzwischen schon mehrfach gemacht hier mal mein Code:

01.
for /f "tokens=1,* delims=:" %%i in ('findstr /n  $ DATEI.txt') do @( 
02.
        for /L %%a in (3,1,3) do @if %%i==%%a @SET VARIABLE=%%j 
03.
04.
 
05.
 
06.
set VARIABLE=%VARIABLE:~26,2%
mit der FOR-Schleife, liest du die datei aus, mit der zweiten legst du die Zeile(n) fest, welche ausgelesen werden sollen und mit dem Set zum schluss, kannst du ueber die exakte laenge der Variable bestimmen.

Hoffe ich konnte dir helfen

Gruss
Chris
Bitte warten ..
Mitglied: bastla
25.07.2012, aktualisiert um 09:55 Uhr
Hallo murphy1 und willkommen im Forum!

Wieso erzeugst Du eine Datei, und weshalb verwendest Du nicht gleich
dir /b/a-d "I:\Pfad\CF11M100*.xml"
In eine (Lauf-)Variable bekommst Du den Namen mit
for /f "delims=" %%i in ('dir /b/a-d "I:\Pfad\CF11M100*.xml"') do echo Starte Tool mit %%i
oder, wenn es unbedingt eine eigene Variable sein soll:
for /f "delims=" %%i in ('dir /b/a-d "I:\Pfad\CF11M100*.xml"') do set "Var=%%i"
Grüße
bastla
Bitte warten ..
Mitglied: murphy1
25.07.2012 um 10:21 Uhr
Hallo bastla

Vielen Dank für deinen Beitrag

Ich erzeuge die Datei, weil ich sie sowiso benötige für
01.
findstr /c:"1 Datei(en)," %CD%\DeviceVerify_File.log > nul 
02.
if %errorlevel% EQU 0 ( 
03.
	REM BEFEHL 
04.
) ELSE ( 
05.
	REM BEFEHL 
06.
)
wenn ich den von dir angegebenen Befehl anwende steht in der Variable
01.
DeviceVerify_File.log
Ich möchte aber ein Teil vom Inhalt dieser Datei in der Variable wie oben beschrieben.
Bitte warten ..
Mitglied: murphy1
25.07.2012 um 10:23 Uhr
Hallo Christoph

Vielen Dank für deinen Beitrag

Kannst du mir vielleicht beschreiben was genau dieser for befehl tut?
Vielleicht schaffe ich es, ihn selber anzupassen.
Ich kenne ihn nicht allzu gut und so wie du ihn geschrieben has funktioniert er nicht.
Bitte warten ..
Mitglied: Sheogorath
25.07.2012 um 11:02 Uhr
Halloechen,

Klar ;)

01.
for /f "tokens=1,* delims=:" %%i in ('findstr /n  $ DATEI.txt') do @(
hiermit wird festgelegt, dass es fuer zeile dieser Datei (DATEI.txt) ausgefuehrt wird. und zwar mit einem Findstr mit ausgabe der Zeile, welche irgendwas enthaelt.
01.
        for /L %%a in (3,1,3) do @if %%i==%%a @SET VARIABLE=%%j 
02.
)
hier wird die passende Zeile rausgessucht, und sobald die Zeilen uebereinstimmen, wird die Variable (VARIABLE) gesetzt
01.
set VARIABLE=%VARIABLE:~26,2%
Hier wird die Variable (VARIABLE) einfach verkuertzt. Mit %VARIABLE:~26,2% wird erst ab der 26. Stelle angefangen zu lesen, und die 2 bedeutet, von der 26. Stelle aus, 2 Zeichen genommen werden.

Anpassen muesstest du alsofolgene Werte:
VARIABLE
DATEI.txt
:~26,2

soblad du das angepasst hast, sollte es funktionieren.

Gruss
Chris
Bitte warten ..
Mitglied: bastla
25.07.2012 um 11:27 Uhr
Hallo murphy1!

Mit dem vond Dir angegebenen Schnipsel prüfst Du ja nur in der Datei "DeviceVerify_File.log" (das %CD%\ davor ist übrigens überflüssig), ob genau eine Datei gefunden wurde - mein Vorschlag ging in die Richtung, auf das Ausgeben des Inhaltsverzeichnisses in die Datei zu verzichten und gleich direkt mit dem gefundenen Dateinamen weiter zu arbeiten ...
wenn ich den von dir angegebenen Befehl anwende steht in der Variable
01.
DeviceVerify_File.log
Diese Möglichkeit würde ich ausschließen, wenn Du tatsächlich
for /f "delims=" %%i in ('dir /b/a-d "I:\Pfad\CF11M100*.xml"') do set "Var=%%i"
verwendet hast ...

BTW: Wenn mit der Möglichkeit zu rechnen ist, dass keine Datei gefunden wird, könnte das etwa so aussehen:
01.
set "Var=" 
02.
for /f "delims=" %%i in ('dir /b/a-d "I:\Pfad\CF11M100*.xml" 2^>nul') do set "Var=%%i" 
03.
if defined Var ( 
04.
    echo Datei %Var% gefunden 
05.
) else ( 
06.
    echo Keine Datei gefunden 
07.
)
Grüße
bastla
Bitte warten ..
Mitglied: murphy1
25.07.2012 um 11:48 Uhr
Vielen Dank für Euere Hilfe

Durch die Erklährung von Christoph kenne ich die ganze for /f Sache besser und
mit den Codeschnipseln von bastla brachte ich das ganze zum funktionieren.

Diese Frage wurde gelöst.
Bitte warten ..
Mitglied: bastla
25.07.2012 um 11:55 Uhr
Hallo murphy1!
Durch die Erklährung von Christoph kenne ich die ganze for /f Sache besser
Wenn Du noch mehr wissen willst: Tutorial zur FOR-Schleife

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Mittels Batch eine Uhrzeit aus einer .txt auslesen und verabeiten (4)

Frage von Beatzler zum Thema Batch & Shell ...

Batch & Shell
gelöst Zeiten in .txt datei auslesen und Differenz berechnen (14)

Frage von meex87 zum Thema Batch & Shell ...

Batch & Shell
gelöst Einen Teil eines Textpfades aus einer TXT per Batch entfernen!? (3)

Frage von kampen zum Thema Batch & Shell ...

PHP
gelöst TXT Datei auslesen und bestimmte Zeilen in Variable setzen (11)

Frage von 126594 zum Thema PHP ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

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

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Ubuntu
gelöst Nextcloud 12 Antivirus App for Files (10)

Frage von horstvogel zum Thema Ubuntu ...

SAN, NAS, DAS
+100tb Storagelösung (10)

Frage von Data-Fabi zum Thema SAN, NAS, DAS ...