Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Neueste Datei per Batch herausfinden (https://www.delphipraxis.net/119936-neueste-datei-per-batch-herausfinden.html)

ManuelR 3. Sep 2008 12:43


Neueste Datei per Batch herausfinden
 
Hallo,

kennt jemand eine Möglichkeit per Batch herauszufinden welches die jüngste
Datei innerhalb eines Verzeichnises ist ?


Danke

Klaus01 3. Sep 2008 12:59

Re: Neueste Datei per Batch herausfinden
 
Mit einer Option von "dir" kannst Du die Dateien dem Alter nach auflisten.
Die letzte Datei ist dann die neueste.

[quote]dir /?
Displays a list of files and subdirectories in a directory.

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

[drive:][path][filename]
Specifies drive, directory, and/or files to list.

/A Displays files with specified attributes.
attributes D Directories R Read-only files
H Hidden files A Files ready for archiving
S System files - Prefix meaning not
/B Uses bare format (no heading information or summary).
/C Display the thousand separator in file sizes. This is the
default. Use /-C to disable display of separator.
/D Same as wide but files are list sorted by column.
/L Uses lowercase.
/N New long list format where filenames are on the far right.
/O List by files in sorted order.
sortorder N By name (alphabetic) S By size (smallest first)
E By extension (alphabetic) D By date/time (oldest first)
G Group directories first - Prefix to reverse order
/P Pauses after each screenful of information.[/quote]


Grüße
Klaus

ManuelR 3. Sep 2008 13:08

Re: Neueste Datei per Batch herausfinden
 
Danke Klaus,

... und nur diese letzte würde ich gerne kopieren. Und das automatisiert als Batch.



Grüsse Manuel

Klaus01 3. Sep 2008 13:41

Re: Neueste Datei per Batch herausfinden
 
Versuche es mal so:

Code:
for /F %i in ('dir /OD /B') do @set FILE=%i

echo %FILE%
Funktioniert bei Dateinamen ohne Leerzeichen.

Grüße
Klaus

Kangri 6. Sep 2010 17:47

AW: Neueste Datei per Batch herausfinden
 
Hallo Klaus,

ich möchte aus einer alphabetisch geordneten Liste die neueste Datei auswählen und umbenennen. Da ich aber noch absoluter Batch Anfänger bin kann ich deinen Code nicht lesen. Könntest du den vielleicht nochmal allgemeiner gefasst posten?
Das wäre super!

Gruß,
David

SirThornberry 6. Sep 2010 18:14

AW: Neueste Datei per Batch herausfinden
 
An was genau scheiterst du? Du musst ja für deinen Fall nur nach etwas anderem sortieren. Die Parameter (also die Hilfe) wurde bereits gepostet.

shmia 6. Sep 2010 18:40

AW: Neueste Datei per Batch herausfinden
 
Also ich würde den Job mit VB-Script erledigen.
Die Möglichkeiten von Batchdateien (MS-DOS) sind doch viel zu begrenzt.
Folgendes VB-Script zeigt die neueste Datei an:
Code:
Dim fNewest
set oFolder=createobject("scripting.filesystemobject").getfolder("C:\")
For Each aFile In oFolder.Files
    If fNewest = "" Then
        Set fNewest = aFile
    Else
        If fNewest.DateCreated < aFile.DateCreated Then
            Set fNewest = aFile
        End If
    End If
Next

MsgBox "Neueste Datei: " + fNewest.name
Zum Testen einfach eine Datei mit der Endung .vbs erstellen und mit einem Editor obigen Code reinkopieren.
Dann Doppelklicken zum Starten.

SirThornberry 6. Sep 2010 19:42

AW: Neueste Datei per Batch herausfinden
 
Funktioniert VBS denn einfach so? Wird es aus sicherheitsgründen auf den meisten Systemen nicht deaktiviert? (zum Beispiel von XP-Antispy etc.)

himitsu 6. Sep 2010 19:55

AW: Neueste Datei per Batch herausfinden
 
Theoretisch müßte man auch %~tI dafür nutzen können.
Schau dir mal FOR-Hilfe an > DOS-Command
Delphi-Quellcode:
for /?
.

Kangri 7. Sep 2010 11:31

AW: Neueste Datei per Batch herausfinden
 
Hallo!

Danke für eure Hilfe. Hier nochmal mein genaues Problem:

Ich habe eine Batch Datei welche mir mehrere Dateien von einem ftp-Server auf meinen lokalen PC kopiert.
Anschließend werden die Dateien alphabetisch sortiert (Dateien sind fortlaufend nummeriert). Jetzt möchte ich die erste Datei auswählen und umbenennen nach aktuellem Datum und Uhrzeit.
Mit
Code:
mget *.jdf
hole ich die Dateien. Hier muss ich leider für jede einzelne Datei
Code:
y
eintippen, kann ich da nicht "ja zu allen" sagen?

So sortiere ich die Dateien und benenne sie um:
Code:
dir *.jdf /o:-n && echo DATEIEN SORTIERT
ren [COLOR="Red"]NEUESTE DATEI[/COLOR] "%date:~0,2%-%date:~3,2%-%date:~6,4%_%time:~0,2%-%time:~3,2%-%time:~6,2%".jdf && echo DATEI UMBENANNT
Wie kann ich hier die neueste Datei wählen?

@shmia: Danke für das Script. Es hat ganz unverändert noch nicht funktioniert. Die MsgBox gibt "Dokumente" aus, obwohl keine Datei so heisst. Ich würde das Problem gerne mit einer Batchdatei lösen, da ich bisher auch alles darüber gelöst habe.

@himitsu: Ich hab mir die Hilfe angeschaut, bin daraus aber nicht schlau geworden. Was bedeutet
Code:
~tI
?

Gruß David


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:54 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz