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

Batch Datei soll aus Textdatei string auslesen

Frage Entwicklung Batch & Shell

Mitglied: NeuNeu

NeuNeu (Level 1) - Jetzt verbinden

27.02.2013, aktualisiert 17:55 Uhr, 1706 Aufrufe, 7 Kommentare

Hallo,

voll Freude habe ich diesen Link gefunden:
http://www.administrator.de/frage/batch-datei-soll-aus-textdatei-string ...

Das klappt auch bestens, wenn ich eine Textdatei explizit angebe.
Ich möchte es aber für viele solcher Dateien machen.
Daher habe ich eine For Schleife gebastelt und meine alles richtig gemacht zu haben,
aber ich kriege nie das Datum (das steht bei mir in Zeile 38 an Position 42) meiner
aktuellen Datei. Irgendwie hat die Variable immer noch das Datum der letzten Datei (17.07.2011).
Obwohl die Zeile set ln immer das richtige Datum der aktuellen Datei enthält, hat
%ln:~42,10% immer das falsche Datum:
01.
for /f "delims=" %%i in ('dir /b') do ( 
02.
  
03.
        echo %%i 
04.
	echo ln=%ln% 
05.
 
06.
 
07.
	for /f "delims=" %%j in ('findstr /n /v "akjgriarg" "%Pfad%"\%%i^|findstr "^38:"') do @Set "ln=%%j"  
08.
	set ln  
09.
	echo %ln:~42,10% 
10.
 
11.
	echo bla 
12.
	echo %%i 
13.
	echo ln=%ln% 
14.
REM	set ln= 
15.
	 
16.
	echo %ln:~42,10% 
17.
	echo start 
18.
	echo Die Variable ln enthält "%ln%" 
19.
 
20.
	echo hier 
21.
)
Habe schon mit set ln= rumgespielt - hilft nix. Ich werd noch wahnsinnig!
Bin für jede Hilfe äußerst dankbar!

Gruß NeuNeu
Mitglied: bastla
27.02.2013, aktualisiert um 15:35 Uhr
Hallo NeuNeu!

Was willst Du denn genau erreichen? Grundsätzlich ist Dein Stichwort "delayedExpansion" - daher entweder ein Unterprogramm verwenden oder die "verzögerte Variablenerweiterung" aktivieren ...

Variante 1 sähe etwa so aus:
01.
@echo off & setlocal 
02.
set "Pfad=D:\Dein Pfad" 
03.
 
04.
for /f "delims=" %%i in ('dir /b') do call :ProcessFile "%%i" 
05.
goto :eof 
06.
 
07.
:ProcessFile 
08.
echo %1 
09.
 
10.
for /f "delims=" %%j in ('findstr /n /v "akjgriarg" "%Pfad%\%~1"^|findstr "^38:"') do Set "ln=%%j" 
11.
set ln 
12.
echo %ln:~42,10% 
13.
 
14.
echo bla 
15.
echo %1 
16.
echo ln=%ln% 
17.
REM set ln= 
18.
 
19.
echo %ln:~42,10% 
20.
echo start 
21.
echo Die Variable ln enthält "%ln%" 
22.
 
23.
echo hier 
24.
goto :eof
Grüße
bastla

P.S.: Findest Du nicht auch passend formatierten Code viel besser lesbar?
Bitte warten ..
Mitglied: NeuNeu
27.02.2013 um 13:16 Uhr
Hallo bastla,

ich möchte für jede Textdatei mein Datum (in Zeile 38, Position 42) ausgelesen haben um dieses
dann in eine Datei zu schreiben.
Aber mein echo %ln:~42,10% zeigt mir schon, dass da nicht das Datum der aktuellen Datei drin ist -
stattdessen das Datum der letzten Datei. Wenn man meinen code als .bat abspeichert und aufruft,
bekomme ich für echo %ln:~42,10% immer nur 17.07.2011 und das ist das Datum der letzten Datei in
meinem Verzeichnis.

Was soll diese "verzögerte Variablenerweiterung" bewirken?
Wenn ich Deine Variante einbaue kommt als Meldung:
"Das Sprungziel - ProcessFile wurde nicht gefunden."

Gruß NeuNeu
Bitte warten ..
Mitglied: andimue
27.02.2013 um 15:25 Uhr
Hallo NeuNeu,

was meinst du mit

Zitat von NeuNeu:
Wenn ich Deine Variante einbaue ...

Hast du gesamten Code von bastla 1:1 verwendet oder möglicherweise nur sein
01.
for /f "delims=" %%i in ('dir /b') do call :ProcessFile "%%i" 
in deinen Code integriert ohne die Subroutine :ProcessFile mit zu übernehmen ?

Also bei mir läuft bastla's Code (natürlich)

Andi
Bitte warten ..
Mitglied: NeuNeu
27.02.2013 um 17:23 Uhr
Okay, ich hatte eine Zeile vergessen...
Nun geht es in der Tat, aber ich verstehe nicht, warum ich das jetzt mit dieser
"verzögerten Erweiterung" machen muss,bzw. was diese bewirkt.
Kann nicht verstehen, was an meinem code falsch ist.

Ich würde verstehen wenn Ihr keine Lust habt, mir das lang und breit zu erklären,
aber so ein kleiner Hinweis, warum es mit meinem code nicht klappt, wäre super!
Schliesslich will ich ja in der Zukunft alles besser machen.....

Jedenfalls besten Dank soweit!

Gruß NeuNeu
Bitte warten ..
Mitglied: bastla
27.02.2013, aktualisiert um 19:54 Uhr
Hallo NeuNeu!
ich verstehe nicht, warum ich das jetzt mit dieser "verzögerten Erweiterung" machen muss
Hast Du denn bei Deiner Suche nach "delayedExpansion" noch nicht mal diesen Beitrag gefunden?

BTW: Mein Vorschlag verwendet die "verzögerte Erweiterung" nicht (was eigentlich aus meinem Kommentar oben aufgrund von
entweder ein Unterprogramm verwenden oder die "verzögerte Variablenerweiterung" aktivieren

Variante 1
hätte hervorgehen sollen) ...

Grüße
bastla
Bitte warten ..
Mitglied: andimue
28.02.2013 um 07:50 Uhr
Hallo NeuNeu,

sehr hilf- und lehrreich ist auch dieser Artikel über das for-Kommando:
http://www.administrator.de/wissen/tutorial-zur-for-schleife-155681.htm ...
Darin wird das Prinzip der "delayedExpansion" sehr gut beschrieben.

Gruß
Andi
Bitte warten ..
Mitglied: bastla
28.02.2013 um 10:20 Uhr
@ andimue
Sehe ich genauso und habe ich nur darum nicht hier angeführt, weil dieses Tutorial ohnehin im oben erwähnten Beitrag (allerdings erst ganz am Ende) verlinkt ist ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Textdatei Spaltenweise auslesen
Frage von PinkFLuffyUnicornBatch & Shell7 Kommentare

hi, ist es irgendwie möglich anstatt eine Textdatei via Batch Spaltenweise auszulesen und nicht zeilenweise wie das normal ganz ...

Batch & Shell
Batch: Textdatei Zeilenweise auslesen
gelöst Frage von CreatorXBatch & Shell2 Kommentare

Hallo, ich weiß, zu dem Thema gibt es schon unzählige Threads. Ich hab auch einiges dazu gefunden und trotzdem ...

Batch & Shell
Batch - Textdatei benutzerbezogen auslesen
Frage von listigerTeppichBatch & Shell4 Kommentare

Hallo beisammen :) ich habe eine txt-Datei in der pro Zeile ein Username und dahinter ein Dateiname steht. Diese ...

HTML
Mit HTML Datei eine Textdatei auslesen
gelöst Frage von MaffiHTML7 Kommentare

hallo, ein Kunde möchte einen Lauftext auf einer Anzeigetafel, welche eine HTML Datei anzeigt regelmäßig und einfach verändern. Ich ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 12 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 16 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 16 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

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

Information von ticuta1 vor 19 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 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 ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...