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

Teil aus txt auslesen

Frage Entwicklung Batch & Shell

Mitglied: murphy1

murphy1 (Level 1) - Jetzt verbinden

25.07.2012, aktualisiert 10:31 Uhr, 2738 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
Einen bestimmten Teil einer Textdatei auslesen
gelöst Frage von Focus1610Batch & Shell5 Kommentare

Hallo, ich brauche mal einen Denkanstoß. Ich bekomme per FTP von einem Kunden täglich mehrere Textdateien. Diese haben unterschiudlich ...

Batch & Shell
Batch datei.txt teile auslesen
gelöst Frage von yellyBirdBatch & Shell2 Kommentare

Hallo zusammen, ich bin realtiv neu hier und hätte eine kleine Frage: ich möchte mit einem batchfile aus einer ...

Batch & Shell
Batch mit for txt auslesen?
gelöst Frage von Mohji32Batch & Shell4 Kommentare

Hallo, ich habe mir den "Grundkurs" zu for schleifen im Board angeschaut aber leider nicht das hin bekommen was ...

Batch & Shell
Mit Batch .txt auslesen und benutzen
gelöst Frage von GhostJumperHDBatch & Shell8 Kommentare

Ich habe folgendes Problem Ich möchte das W-Lan überlasten und möchte danach die .bat zur .exe umwandeln. Ich möchte ...

Neue Wissensbeiträge
Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 12 StundenMac OS X1 Kommentar

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Datenschutz

Weitere Informationen zum Sicherheitsproblem BeA

Information von Penny.Cilin vor 19 StundenDatenschutz

Im folgenden ein weiterer Bericht über die Sicherheitsprobleme von Bea. Fataler Konstruktionsfehler im besonderen elektronischen Anwaltspostfach Gruss Penny

Windows 10

Systemdienste behalten nach Win10 inplace-Upgrade nicht die ggf. modifizierte Startart bei

Tipp von DerWoWusste vor 21 StundenWindows 103 Kommentare

Stellt Euch vor, Ihr habt ein Win10 System und modifiziert dort die Startart von Systemdiensten. Zum Beispiel wollt Ihr ...

Microsoft Office

Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei

Anleitung von SarekHL vor 1 TagMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von fyrb38Windows 1018 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Microsoft Office
Deaktivieren von Startbildschirm und Backstage-Ansicht in Office 2016 per Batch-Datei
Anleitung von SarekHLMicrosoft Office17 Kommentare

Guten Morgen zusammen! Ich habe mir gestern (auch mit Hilfe dieses Boards) ein Script gebastelt, um in Office 2016 ...