Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Neuste cfg Datei anzeigen
- Ersteller dinoldo
- Erstellt am
simpsonsfan
Captain
- Registriert
- Feb. 2008
- Beiträge
- 3.351
Aus
machen. Siehe auch die cmd-Hilfe zu for /?
Code:
%%I
Code:
%%~nI
- Registriert
- Juni 2017
- Beiträge
- 104
Hallo simpsonsfan,
es funktioniert - herzlichen Dank!
Ich möchte das Ergebnis weiter hin in der Batch Datei an x-beliebige Stelle nutzen.
Muss ich das Ergebnis in eine Variable packen?
So geht es erstmal nicht...
Bitte um Hilfe, damit ich mein Arbeit heute noch fertig stellen kann.
Besten Dank im Voraus!
Gruß,
Dino
es funktioniert - herzlichen Dank!
Ich möchte das Ergebnis weiter hin in der Batch Datei an x-beliebige Stelle nutzen.
Muss ich das Ergebnis in eine Variable packen?
So geht es erstmal nicht...
Code:
ECHO Letzte geaenderte CFG-Datei ohne Dateiendung:
FOR /F %%I IN ('dir ""D:\Daten\*.cfg"" /B /O:-D') DO ECHO %%~nI
set FILE=%%~nI
echo %FILE%
pause
Bitte um Hilfe, damit ich mein Arbeit heute noch fertig stellen kann.
Besten Dank im Voraus!
Gruß,
Dino
simpsonsfan
Captain
- Registriert
- Feb. 2008
- Beiträge
- 3.351
Dann musst du am Anfang des Batch-Skripts ein
einfügen und bei der Verwendung der Variable dann statt Prozentzeichen Ausrufezeichen verwenden. Also
In einem anderen Thread hat r0b0t noch ein paar weitere Worte dazu.
Code:
setlocal enableDelayedExpansion
Code:
echo !FILE!
r0b0t schrieb:
dinoldo schrieb:So geht es erstmal nicht...
Wenn Du mit Schleifenvariablen zur Laufzeit arbeiten willst, dann musst Du vorher ein
Code:
SETLOCAL EnableDelayedExpansion
Code:
ECHO Letzte geaenderte CFG-Datei ohne Dateiendung:
SETLOCAL EnableDelayedExpansion
FOR /F %%I IN ('dir ""D:\Daten\*.cfg"" /B /O:-D') DO ECHO %%~nI
set FILE=%%~nI
echo !FILE!
ENDLOCAL
pause
/edit: zu langsam ...
- Registriert
- Juni 2017
- Beiträge
- 104
Code:
@echo off
color A0
ECHO Letzte geaenderte CFG-Datei ohne Dateiendung:
SETLOCAL EnableDelayedExpansion
FOR /F %%I IN ('dir ""C:\Daten\*.cfg"" /B /O:-D') DO ECHO %%~nI
set FILE=%%~nI
echo !FILE!
ENDLOCAL
pause
Damit bekomme ich nicht !FILE! raus, sondern alle Dateien:
Letzte geaenderte UPF-Datei ohne Dateiendung
master_2017.0
cadison
untitled
TSK_2017.0
Losta_1
FLUG_2014
examples
KIT
%~nI
Drücken Sie eine beliebige Taste . . .
Ja natürlich - du durchläufst ja auch eine Schleife über alle Dateien, nach Änderungsdatum sortiert. Einfach die Schleife verlassen, wenn der 1. Wert gefunden ist.dinoldo schrieb:Damit bekomme ich nicht !FILE! raus, sondern alle Dateien:
Code:
@ECHO OFF
FOR /F %%I IN ('dir ""C:\Daten\*.cfg"" /B /O:-D') DO (
set FILE=%%~nI
IF EXIST %%I GOTO Found
)
:Found
ECHO %File%
pause
edit: Alternativ geht natürlich auch exit, wie bereits von z0tti in seinem Posting verwendet.
Zuletzt bearbeitet:
simpsonsfan
Captain
- Registriert
- Feb. 2008
- Beiträge
- 3.351
Entferne das Minus-Zeichen in Zeile 3 vor dem D.
Passiert ist folgendes: Der dir-Befehl gibt dir eine Liste der cfg-Dateien im Verzeichnis aus. Durch die Einstellung /O:-D nach Datum sortiert mit der neuesten Datei ganz oben.
z0tti hat in seinem Codebeispiel nach der ersten Zeile das Skript abgebrochen. So wurde die erste Zeile, also die neueste Datei ausgegeben.
Dadurch, dass du nicht mehr abbrichst, wird die For-Schleife für alle gefundenen Einträge durchgegangen und jedesmal die Variable FILE mit dem Dateinamen aus der aktuellen Zeile überschrieben. Damit bleibt logischerweise als letztes der Dateiname aus der letzten Zeile drin. In der eingestellten Sortierung (Info mittels dir /?) steht in der letzten Zeile die Datei mit dem niedrigsten Datum.
Wenn du das Minus entfernst, ist die Reihenfolge gerade andersrum.
Edit: Hab Posts #8 und 9 übersehen. Mit dem Code von
Andreas_ brichst du ja doch noch ab. Bei mir funktioniert das so und es wird die zuletzt geänderte Datei ausgegeben. Dann allerdings wieder ohne enableDelayedExpansion.
Passiert ist folgendes: Der dir-Befehl gibt dir eine Liste der cfg-Dateien im Verzeichnis aus. Durch die Einstellung /O:-D nach Datum sortiert mit der neuesten Datei ganz oben.
z0tti hat in seinem Codebeispiel nach der ersten Zeile das Skript abgebrochen. So wurde die erste Zeile, also die neueste Datei ausgegeben.
Dadurch, dass du nicht mehr abbrichst, wird die For-Schleife für alle gefundenen Einträge durchgegangen und jedesmal die Variable FILE mit dem Dateinamen aus der aktuellen Zeile überschrieben. Damit bleibt logischerweise als letztes der Dateiname aus der letzten Zeile drin. In der eingestellten Sortierung (Info mittels dir /?) steht in der letzten Zeile die Datei mit dem niedrigsten Datum.
Wenn du das Minus entfernst, ist die Reihenfolge gerade andersrum.
Edit: Hab Posts #8 und 9 übersehen. Mit dem Code von
Andreas_ brichst du ja doch noch ab. Bei mir funktioniert das so und es wird die zuletzt geänderte Datei ausgegeben. Dann allerdings wieder ohne enableDelayedExpansion.
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 5
- Aufrufe
- 1.597
- Antworten
- 5
- Aufrufe
- 6.234
CoD:Modern Warfare
cod4, lvl HC modus (cfg datei)
- Antworten
- 6
- Aufrufe
- 1.754