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 Dateinamen aus Verzeichnis Auslesen und Stringzerlegung zur Datumsanalyse

Mitglied: caspi-pirna

caspi-pirna (Level 1) - Jetzt verbinden

04.12.2014 um 07:45 Uhr, 838 Aufrufe, 3 Kommentare

Guten Morgen.
Ich habe ein Problem mit einer Batch- Aufgabe. Es soll der Inhalt eines Verzeichnisses überprüft werden. In dem Verzeichnis sind Dateien mit Datum im Format "JJJJ.MM.TT__Dateiname" und es soll die aktuellste Datei mit dem Namen "Basis-Backup.7z" gefunden werden. Dazu habe ich den nachfolgenden Code.

del inhalt_temp.txt /s /q 
pushd "inhalt_temp.txt" 
for /F "tokens=1" %%a in ('dir /b /a:-d *Basis-Backup.7z') do ( 
	if exist %%a ( 
		echo %%a >> inhalt_temp.txt 
		set "str=%%a" 
		echo Aktuelles Datum: %str% 
		set jahr=%str:~0,4% 
		set monat=%str:~5,2% 
		set tag=%str:~8,2% 
			 
		echo Tag: %tag% 
		echo Monat: %monat% 
		echo Jahr: %jahr% 
	)		 
) 
Beim Ausführen des Codes wird die For-Schleife korrekt durchlaufen und die entsprechende Datei auch gefunden (Erfüllung der If-Bedingung). Auch der Inhalt der Laufvariable &&a wird korrekt in die Datei "inhalt_temp.txt" geschrieben. Allerdings werden sämtliche set- Befehle nachfolgend ignoriert. Die Echo-Ausgaben von Tag, Monat und Jahr sind leer.

Kann mir jemand verraten, wo der Fehler liegt?
Besten Dank im Voraus!
Caspi
Mitglied: colinardo
LÖSUNG 04.12.2014, aktualisiert um 09:45 Uhr
Hallo Caspi, Willkommen auf Administrator.de!
Dir fehlt die verzögerte Variablenerweiterung wenn du Variablen innerhalb von Klammern bzw. der FOR-Schleife setzt und ausgeben möchtest.
01.
setlocal enabledelayedexpansion 
02.
 
03.
set "str=%%a"  
04.
echo Aktuelles Datum: !str! 
05.
 
06.
set jahr=!str:~0,4! 
07.
set monat=!str:~5,2! 
08.
set tag=!str:~8,2! 
09.
 
10.
echo Tag: !tag! 
11.
echo Monat: !monat! 
12.
echo Jahr: !jahr!
Die Variablen müssen dann mit Ausrufezeichen anstatt Prozentzeichen umschlossen werden.

Lese am besten das oben verlinkte Tutorial zur FOR-Schleife, darin wird das noch mal ausführlich von @Friemler erläutert.

Grüße Uwe
Bitte warten ..
Mitglied: caspi-pirna
04.12.2014 um 09:44 Uhr
Hallo Uwe,
besten Dank für den Hinweis! Das war die Lösung für das Problem!
Einen schönen Tag noch!
Grüße,
Caspi
Bitte warten ..
Mitglied: bastla
04.12.2014 um 13:41 Uhr
Hallo caspi-pirna und auch von mir ein Willkommen!

Da Du ja an sich die aktuellste Datei suchst, wäre mein Ansatz eher:
01.
for /F "delims=" %%a in ('dir /b/on/a-d 20*Basis-Backup.7z') do set "str=%%a" 
02.
>inhalt_temp.txt echo %str% 
03.
echo Aktuelles Datum: %str% 
04.
set "jahr=%str:~0,4%" 
05.
set "monat=%str:~5,2%" 
06.
set "tag=%str:~8,2%" 
07.
			  
08.
echo Tag: %tag% 
09.
echo Monat: %monat% 
10.
echo Jahr: %jahr%
Was machst du in weiterer Folge eigentlich noch mit den Variablen %jahr%, %monat% und %tag%?

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Datei aus Verzeichnis auslesen?
gelöst Frage von freshman2017Batch & Shell4 Kommentare

Hallo Ihr! Ich wollte mir gerade mit nachfolgendem Batch Befehl: alle darin befindlichen Bilder auflisten. Ausgabe: Wie kann ich ...

Batch & Shell

Dateinamen auslesen und in einer Schleife benutzen

gelöst Frage von TeholBeddictBatch & Shell12 Kommentare

Hallo Experten, ich kämpfe derzeit mit folgender Aufgabenstellung, welche ich per Batchskript lösen möchte: In einem Ordner sind 1 ...

Batch & Shell

Dateinamen auslesen und in Code einbauen

gelöst Frage von markueBatch & Shell10 Kommentare

Hallo an alle, ich bin neu hier und habe eine für mich knifflige Sache. Ich möchte per .cmd Datei ...

Batch & Shell

Batch: Dateiname abhängig vom Änderungsdatum auslesen

gelöst Frage von freaktastischBatch & Shell6 Kommentare

Servus zusammen, hab folgende Situation Oberordner: beinhaltet test.bat, Ordner1 und Ordner2 Ordner1, sowie Ordner2 beinhalten .docx Dateien. Mein Anliegen ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 TagenWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 2 TagenAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 3 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 3 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Router & Routing
Router auf Orginal Firmware zurück flashen mit Tftpd
Frage von ILeonardRouter & Routing21 Kommentare

Hallo, Ich habe zwei Router, einmal TP-Link 841n v11 und TP-Link 940N v5. Ich wollte fragen, ob jemand mir ...

Router & Routing
WRT keine Verbindung zum Web Interface
gelöst Frage von ILeonardRouter & Routing18 Kommentare

Hallo, Ich habe einen TP-Link WR841n mit wrt geflasht, das Problem ist ich kann mich mit 192.168.1.1 nicht verbinden. ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

TK-Netze & Geräte
Telefonie zweier Fritzboxen mit je eigenem DSL Anschluss verbinden
Frage von hannsgmaulwurfTK-Netze & Geräte10 Kommentare

Hallo zusammen, ich habe hier einen Haushalt mit zwei Anschlüssen. Einmal ISDN, einmal DSL. An jedem Anschluss hängt eine ...