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

Dateinamen ermitteln und in eine Variable innerhalb der Batch schreiben (For-Schleife)

Frage Entwicklung Batch & Shell

Mitglied: Vorlon

Vorlon (Level 1) - Jetzt verbinden

06.08.2014, aktualisiert 07.08.2014, 2244 Aufrufe, 2 Kommentare

Ich wünsche einen guten Abend und schon einmal vielen Dank im Voraus für mögliche Unterstützungen!
Da mich die Informationen hier und in diversen WiKis fast bis an´s Ziel gebracht haben,
aber ich nun nicht mehr weiterkomme schreibe ich diesen Thread in der Hoffnung auf "Erleuchtung".

Die Ausgangssituation:
Ich habe ein Verzeichnis in dem jede Nacht eine neue Log-Datei erzeugt wird, z.B.
Logfile 04.08.2014 - 22-06 Uhr (BenutzerXY).log
Logfile 05.08.2014 - 21-47 Uhr (BenutzerAB).log
Logfile 06.08.2014 - 22-34 Uhr (BenutzerJK).log

Der Pfad zu dem Verzeichnis in meinem Codeschnipsel unten lautet:
\\server\Backup-Logs\999X\Chef-PC\2014

Zur Auswertung der Logdatei muß täglich ich den genauen Namen der Datei ermitteln,
da Uhrzeit und Benutzername nicht konstant sind.


01.
  
02.
set logfilehomepath=\\server\Backup-Logs 
03.
set KdNr=9999X 
04.
set PCname=Chef-PC 
05.
 
06.
set logfilepath="%logfilehomepath%\%KdNr%\%PCname%\%date:~-4%\Logfile %date:~0% - *.log" 
07.
 
08.
REM Variable logfile definieren 
09.
set logfile=keine Logdatei zum heutigen Datum vorhanden 
10.
 
11.
For /F %%i in ('dir /B %logfilepath%') do set logfile=%%~i 
12.
 
13.
@echo %logfile% 
14.
pause


Wenn die For-Schleife in meinem Skript sich nun in dem zusammengesetzten Verzeichnispfad alle *.log-Dateien vornimmt,
dann findet sie auch die Datei die zum heutigen Datum passt, aber an die Variable %logfile% wird nicht der komplette
Dateiname sondern nur das Wort Logfile übergeben.

Kann dieses Verhalten evtl. mit den Leerzeichen im Dateinamen zusammenhängen und falls ja wie bekomme ich das
in den Griff? Die Dateinamen der Logdatei kann ich nicht beeinflussen.
Mitglied: Friemler
LÖSUNG 06.08.2014, aktualisiert 07.08.2014
Hallo Vorlon,

vesuche mal folgende Änderung der FOR-Schleife:
for /f "delims=" %%i in ('dir /b "%logfilepath%"') do set "logfile=%%~i"
Siehe auch mein Tutorial zur FOR-Schleife.

Gruß
Friemler
Bitte warten ..
Mitglied: Vorlon
07.08.2014 um 15:12 Uhr
Vielen Dank Friemler,
funktioniert perfekt nachdem ich die Anführungszeichen bei der Wert-Zuweisung der Variablen %logfilepath% entfernt habe.

Danke auf für den Hinweis auf das Tutorial, wobei ich aktuell nur einen Bruchteil des dort geschriebenen nachvollziehen kann.
... aber ich bin ja noch lernfähig!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Loop Variablen ( Batch ) (2)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen auslesen und in einer Schleife benutzen (12)

Frage von TeholBeddict zum Thema Batch & Shell ...

Neue Wissensbeiträge
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 ...

Exchange Server

Mittels Batch-Script Exchange-Logs sammeln und archivieren

Anleitung von beidermachtvongreyscull zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
SSL Zertifikat für HTTPS (33)

Frage von Hendrik2586 zum Thema Verschlüsselung & Zertifikate ...

Grafikkarten & Monitore
24" oder 27" mit Full HD oder doch mehr Auflösung? (21)

Frage von brutzler zum Thema Grafikkarten & Monitore ...

Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

Netzwerke
Ip Adressenkonflikt bei Großfamilie (12)

Frage von gunter zum Thema Netzwerke ...