Dir - Datei mit größerer ID anzeigen
Hallo Leute,
ich habe einen "dir" Befehl welcher mir folgendes ausgibt:
Befehl:
Das Problem ist, eine Datei gibt es zwei mal, aber ich brauch in der Ausgabe die mit der Größeren ID (3433)
Wie kann ich den Befehl anpassen um das zu erreichen?
Liebe Grüße
ich habe einen "dir" Befehl welcher mir folgendes ausgibt:
Verfuegbarkeit_TNG_DSL_VPN_20140501_3432.pdf
Verfuegbarkeit_TNG_DSL_VPN_20140501_3433.pdf
Verfuegbarkeit_TNG_VK_20140501_3442.pdf
Verfuegbarkeit_TNG_VPN-Gateway_20140501_3443.pdf
dir /B *TNG*V*%Monat:~-2%01*.pdf
Wie kann ich den Befehl anpassen um das zu erreichen?
Liebe Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 241576
Url: https://administrator.de/forum/dir-datei-mit-groesserer-id-anzeigen-241576.html
Ausgedruckt am: 14.04.2025 um 18:04 Uhr
16 Kommentare
Neuester Kommentar
Hallo,
Liefert dir doch "Alles" TNG"Alles"V"Alles"%Monat~-2%01"Alles".PDF. Wie ist dein %Monat~-2% definiert? In einer Batchdatei?
Gruß,
Peter
Liefert dir doch "Alles" TNG"Alles"V"Alles"%Monat~-2%01"Alles".PDF. Wie ist dein %Monat~-2% definiert? In einer Batchdatei?
Das Problem ist, eine Datei gibt es zwei mal
Falsch. In einen Ordner kann es diese Datei nur genau 1 mal geben. Wenn die dort 2 mal existiert, ist dein dateisystem zum Teufel. Dein Betriebssystem ist ein?aber ich brauch in der Ausgabe die mit der Größeren ID (3433)
Dir *3433.PDF ?Gruß,
Peter
Moin,
oder wenn der Name am Anfang unterschiedlich sein sollte:
Grüße Uwe
es gibt 2 Dateien die sich im Namen nur in der ID unterscheiden.
dann z.B. so:for /f "delims=" %%a in ('dir /B /A-D /ON "*TNG*V*%Monat:~-2%01*.pdf"') DO set "file=%%a"
echo %file%
setlocal ENABLEDELAYEDEXPANSION
set maxid=0
for /f "delims=" %%a in ('dir /B /A-D /ON "*TNG*V*%Monat:~-2%01*.pdf"') DO @(
set fname=%%~na
set num=!fname:~-4!
if !num! GTR !maxid! (
set maxid=!num!
set "file=%%a"
)
)
echo %file%
Hallo,
Oder etwas komplexer indem du die in Frage kommenden Dateien ausliest, die ID extrahierst und diese dann Zahlenmäßig vergleichst bis du die höhere ID gefunden hast.(Aufwendig). könnte dir helfen....
Gruß,
Peter
Zitat von @xgUix:
Da hast du Recht, das Problem ist, es gibt 2 Dateien die sich im Namen nur in der ID unterscheiden.
Die ID ändert sich von Monat zu Monat,
Deine beiden Aussagen passen nicht zusammen. Entweder pro Monat eine neue ID oder Pro Monat mehrere IDs und Dateien. Dann sollte die höhere ID auch das jüngere Datum tragen, oder?Da hast du Recht, das Problem ist, es gibt 2 Dateien die sich im Namen nur in der ID unterscheiden.
Die ID ändert sich von Monat zu Monat,
ich brauche immer die Datei mir der größeren ID.
Über das Datum?Oder etwas komplexer indem du die in Frage kommenden Dateien ausliest, die ID extrahierst und diese dann Zahlenmäßig vergleichst bis du die höhere ID gefunden hast.(Aufwendig). könnte dir helfen....
Gruß,
Peter
Hallo,
Schon mal ein DIR auf die Dateien gemacht und geschaut welches DATEI Datum deine Dateien tragen? Erstellt, geändert, letzter Zugriff.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724290(v=vs.8 ...
http://support.microsoft.com/kb/299648
http://jpsoft.com/help/timestamps.htm
http://www.forensicswiki.org/wiki/New_Technology_File_System_(NTFS)
http://superuser.com/questions/387042/how-to-check-all-timestamps-of-a- ...

Ich dachte es wäre klar das hier von den Dateiattributen Datum und Zeit geredet wurde....
Gruß,
Peter
Schon mal ein DIR auf die Dateien gemacht und geschaut welches DATEI Datum deine Dateien tragen? Erstellt, geändert, letzter Zugriff.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms724290(v=vs.8 ...
http://support.microsoft.com/kb/299648
http://jpsoft.com/help/timestamps.htm
http://www.forensicswiki.org/wiki/New_Technology_File_System_(NTFS)
http://superuser.com/questions/387042/how-to-check-all-timestamps-of-a- ...
Datum im Namen ist immer 20140501
Namen sind Schall und rauch.egal wann die Datei erstellt wird(außer in einem anderen Monat)
Eine Datei welche ich erstelle und den Namen "17020601-223201.txt" gebe wird aber trotzdem mit heutigem Datum und Uhrzeit im Dateisystem eingetragen (sofern meine Systemzeit eben NICHT den "01.06.1702" und "22:32:01" entsprichtIch dachte es wäre klar das hier von den Dateiattributen Datum und Zeit geredet wurde....
Gruß,
Peter
allo,
Indem du dir Klar wirst welche dieser Vier verschiedenen Dateien du überhaupt sehen willst. Die sind zwar beide vom Gleichen datum und Uhrzeit, aber die beinhalten doch sicherlich Grundsätzlich andere Inhalte, oder?
Liefert dir doch 4 Verschiedene Datei und Inhalte (zumindest sieht es für uns so aus)
Welche Datei soll es denn tatsächlich sein? Sicher das dein DIR dir überhaupt dein gewünschtes resultat zeigt? oder willst du aus diesem Dir dann tatsächlich nur die eine Datei mit ID 3443 haben?
Was liefert dir ein
Gruß,
Peter
Indem du dir Klar wirst welche dieser Vier verschiedenen Dateien du überhaupt sehen willst. Die sind zwar beide vom Gleichen datum und Uhrzeit, aber die beinhalten doch sicherlich Grundsätzlich andere Inhalte, oder?
> dir /o:d /T:C *TNG*V*%Monat:~-2%01*.pdf
> 01.06.2014 00:02 159.167 Verfuegbarkeit_TNG_DSL_VPN_20140501_3432.pdf
> 01.06.2014 00:38 230.057 Verfuegbarkeit_TNG_VK_20140501_3442.pdf
> 01.06.2014 00:38 140.849 Verfuegbarkeit_TNG_VPN-Gateway_20140501_3443.pdf
> 23.06.2014 14:48 3 Verfuegbarkeit_TNG_DSL_VPN_20140501_3433.pdf
Was liefert dir ein
dir *TNG_VP*%Monat:~-2%01_*.PDF
Gruß,
Peter
hier geht's ... du musst das natürlich in eine Batchdatei packen und nicht direkt in die Konsole tippen ! Dort
müsstest du die doppelten Prozentzeichen durch einfache ersetzen! Und es war natürlich nur ergänzend zu deinem Code !
(hier gehe ich auch von einem deutsch eingestellten Datumsformat aus dd.mm.yyyy):
in der Laufvariablen %%a steht dann bei jedem Durchlauf der aktuelle Dateiname.
Alternativ ginge es auch so (bei deutsch eingestelltem Datumsformat dd.mm.yyyy):
Grüße Uwe
p.s. in Powershell ist das ganze auch ein Kinderspiel (noch ein Grund langsam mal umzusteigen
) :
müsstest du die doppelten Prozentzeichen durch einfache ersetzen! Und es war natürlich nur ergänzend zu deinem Code !
Und würde dann nicht nur der letzte Datei-Name in der Text-Datei stehen?!
ja sicher, und zwar die Datei mit der größten Nummer da geordnet ausgegeben, ich zitiere dich:aber ich brauch in der Ausgabe die mit der Größeren ID (3433)
da dachte ich du brauchst nur "ein" File. Aber in der Schleife oben kannst du ja auf alle Files vom ersten des Monats zugreifen und machen was du willst!(hier gehe ich auch von einem deutsch eingestellten Datumsformat aus dd.mm.yyyy):
for /f "delims=" %%a in ('dir /B /A-D /ON "*TNG*V*%Monat:~-2%01*.pdf"') DO (
set filedate=%%~ta
if "!filedate:~0,2!" == "01" (
REM hier für jedes File vom ersten des Montats was machen ...
echo %%a
)
)
Alternativ ginge es auch so (bei deutsch eingestelltem Datumsformat dd.mm.yyyy):
for /f "tokens=1 delims=:" %%a in ('forfiles /M "*TNG*V*%Monat:~-2%01*.pdf" /c "cmd /c echo @file:@fdate" 2^>nul ^| findstr /re ":01\.[0-1][0-9]\.[1-2][0-9][0-9][0-9]"') DO @echo %%a
p.s. in Powershell ist das ganze auch ein Kinderspiel (noch ein Grund langsam mal umzusteigen
dir c:\ordner\*TNG*V*0501*.pdf | ?{$_.CreationTime.Day -eq "1"}
Die ausgegebenen Werte sollen in eine einfache Text Datei, damit ich Sie dann später mit BLAT weiterverwenden kann.
echo %%a>>textdatei.txt
zur Powershell-Variante:
Sicher kannst du dort auch Variablen verwenden, das war nur ein Beispiel
$var = "05"
dir "c:\ordner\*TNG*V*$var01*.pdf" | ?{$_.CreationTime.Day -eq "1"} | select -ExpandProperty FullName | set-content textdatei.txt
Zitat von @xgUix:
Ich danke dir recht herzlich!
Weiteres Problem
.. BLAT kommt mit den Anführungszeichen, vor und hinter dem Dateinamen, nicht klar.
auch kein Problem:Ich danke dir recht herzlich!
Weiteres Problem
echo %%~a>>textdatei.txt
(Wenn ich das Skript zwei Mal ausführe, stehen dann doppelt so viele Einträge in der Datei.
Nach der Weiterverarbeitung würde ich die Datei dann einfach wieder löschen.)
das legt die Anzahl der ">>" fest, wenn du eins > verwendest dir der Inhalt der Datei immer überschrieben, wenn du zwei >> benutzt wird immer an die Datei angehängt. Also lösche am besten das File bevor du es neu erstellst.Nach der Weiterverarbeitung würde ich die Datei dann einfach wieder löschen.)
p.s. wenn es dich interessiert: hier gibt es von mir bereits fertige VBS-Scripte die sich leicht an dein Vorhaben mit Blat anpassen ließen:
PDF Dateien aus Verzeichnis automatisch per Email versenden
Grüße Uwe