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

Frage Entwicklung Batch & Shell

Mitglied: caspi-pirna

caspi-pirna (Level 1) - Jetzt verbinden

04.12.2014 um 07:45 Uhr, 814 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
BATCH - Dateiname und Erstelldatum auslesen
gelöst Frage von Memo66Batch & Shell5 Kommentare

Hallo zusammen, ich habe folgendes Problem, vielleicht kann mir einer ja weiterhelfen:) Ich möchte die Dateinamen und das Erstellungsdatum ...

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 ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 12 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 14 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Batch & Shell
Neuste Datei via PowerShell kopieren
gelöst Frage von kaiuwe28Batch & Shell11 Kommentare

Hallo zusammen, ich hatte mir mit Hilfe der Suche im Forum einen kleinen Code von colinardo rausgesucht und versucht ...