WinFuture-Forum.de: DOS / Batch Dateien ahand von Änderungsdarum verschieben - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

DOS / Batch Dateien ahand von Änderungsdarum verschieben


#1 Mitglied ist offline   tr1ckkyyy 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 15. Februar 17
  • Reputation: 0

geschrieben 27. Februar 2017 - 15:10

Hallo,

tut mir leid das ich euch wieder einmal belästigen muss. :unsure: :rolleyes:

Ich habe nun ein kleines Problem, welches ich aber gerne schnell lösen würde.

Ich habe eine kleine Batch Datei, welche Dateien von dir 1 nach dir 2 schiebt. Dies 3x. (6 Verzeichnisse)
Nun möchte ich aber gerne eine weitere Batch, die prüft welche Dateien in einem bestimmten Verzeichnis z.B. heute (Datum = Arbeitsdatum) geändert wurden und diese dann verschiebt in Verzeichnis X.

Ich habe herausgefunden, dass der Befehl dir /t:w mir anzeigt, wann Dateien aus einem Verzeichnis zuletzt geändert wurden, aber ich komme als absoluter "Newbie" einfach nicht weiter :blink:

Ich würde es super toll finden, wenn ein paar Genies hier bereit wären mir ihre Unterstützung anzubieten. :lol: :P

Gruß

tr1ckkyyy / Phill


Batch 1 Code:

if not exist %_helpFilesDirectoryMedia% md %_helpFilesDirectoryMedia%
if not exist %_helpFilesDirectorydeDE% md %_helpFilesDirectorydeDE%
if not exist %_helpFilesDirectorydeDECustom% md %_helpFilesDirectorydeDECustom%
REM --------------------------------------
REM move files to NAV 2013 help files directorys
for %%i in ("%_inputdeDE%\*.*") do move "%%i" "%_helpFilesDirectorydeDE%"

for %%i in ("%_inputdeDE_Custom%\*.*") do move "%%i" "%_helpFilesDirectorydeDECustom%"

for %%i in ("%_inputdeDE_Custom_Media%\*.*") do move "%%i" "%_helpFilesDirectoryMedia%"

0

Anzeige



#2 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 27. Februar 2017 - 15:13

Schau dir mal den Befehl robocopy an
0

#3 Mitglied ist offline   tr1ckkyyy 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 15. Februar 17
  • Reputation: 0

geschrieben 27. Februar 2017 - 15:54

Beitrag anzeigenZitat (d4rkn3ss4ev3r: 27. Februar 2017 - 15:13)

Schau dir mal den Befehl robocopy an



Ok, das sieht schon mal nicht schlecht aus.

Wenn ich das richtig sehe wäre das dann ja von der Syntax.

ROBOCOY Quelle Ziel [Datei] [Optionen].

Also würde ich in dieese Richtung gehen:

ROBOCOPY "%_inputdeDE%\*.*" "%_helpFilesDirectorydeDECustom%" /E /MAXAGE TODAY?

wäre das richtig? Ich habe für das Datum kein Befehl gefunden wo genau "heute" rauskommen würde oder sehe ich das falsch?

Aber danke schonmal für die sehr schnelle Antwort! :imao: :wink:
0

#4 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 27. Februar 2017 - 16:43

/MAXAGE:n :: Maximales Dateialter - schließt Dateien aus, die älter als n Tage/Datum sind.
Das heißt du musst für n einfach eine 1 eintragen
0

#5 Mitglied ist offline   Airboss 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.029
  • Beigetreten: 27. Januar 07
  • Reputation: 40
  • Geschlecht:Männlich
  • Wohnort:Area 51

geschrieben 27. Februar 2017 - 18:17

... und das GUI für Robocopy gibts hier ...

Dieser Beitrag wurde von Airboss bearbeitet: 27. Februar 2017 - 18:18

O <<<--------------- NSA! - Anschluß für Sonden --------------->>> O

Eingefügtes Bild
0

#6 Mitglied ist offline   tr1ckkyyy 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 15. Februar 17
  • Reputation: 0

geschrieben 28. Februar 2017 - 08:54

Beitrag anzeigenZitat (d4rkn3ss4ev3r: 27. Februar 2017 - 16:43)

/MAXAGE:n :: Maximales Dateialter - schließt Dateien aus, die älter als n Tage/Datum sind.
Das heißt du musst für n einfach eine 1 eintragen


Ok, das habe ich nun verstanden.
Dann habe ich aber noch eine Frage, wenn ich nun keine Optionen für das Verschieben an sich angebe, werden die Dateien dann nur kopiert oder werden diese dann auch gelöscht?

Beitrag anzeigenZitat (Airboss: 27. Februar 2017 - 18:17)

... und das GUI für Robocopy gibts hier ...


Sieht ok aus, aber ich denke eher weniger sinnvoll für mich, trotzdem danke! :lol: :blush:
0

#7 Mitglied ist offline   Airboss 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.029
  • Beigetreten: 27. Januar 07
  • Reputation: 40
  • Geschlecht:Männlich
  • Wohnort:Area 51

geschrieben 28. Februar 2017 - 18:41

...auch deshalb das GUI - alle benötigten Parameter auswählen (erspart Tipparbeit) und durch überfahren des jeweiligen Parameters mit der Maus die benötigen Info's erhalten - abschließend mit Parameter /l das ganze Testen - es wird nur "virtuell" der Kopiermodus durchgespielt - also kein wirklicher Kopiervorgang gestartet und bei vollständig bearbeiteter Kopierdatei kann diese dann auch als *.cmd und/oder *.bat Datei gespeichert werden...
O <<<--------------- NSA! - Anschluß für Sonden --------------->>> O

Eingefügtes Bild
0

#8 Mitglied ist offline   RalphS 

  • Gruppe: VIP Mitglieder
  • Beiträge: 8.895
  • Beigetreten: 20. Juli 07
  • Reputation: 1.126
  • Geschlecht:Männlich
  • Wohnort:Zuhause
  • Interessen:Ja

geschrieben 01. März 2017 - 00:52

Nicht batch, sondern PowerShell hat auf Datei- und Ordnerobjekten jeweils die Eigenschaft .LastWriteTime, die man sich anschauen und ganz einfach wie ein (DATETIME-)Datum behandeln kann (was es ja auch ist).

Also sowas wie (ungeprüft):

# Beschaffe Dateiliste aus dem Verzeichnis <PFAD>, einschließlich Dateien und Ordnern
# Kann mit -Path <PFAD>\<filter>, mit -Path <PATH> -Filter <filter> oder mit | ? {<filterausdruck>} eingeschränkt werden

# Hier wird nachträglich nach Datei(statt Ordner)objekten gefiltert (beispielhaft)

[System.Io.FilesystemInfo[]] $FolderContents = Get-ChildItem -Path <PFAD> -Recurse:<$true für 'mit Unterverzeichnissen'; $false oder weglassen für ohne>

[System.Io.FileInfo[]] $FileList = $FolderContents | ? {$_ -is [System.Io.FileInfo] };

# Beschaffe Referenz auf "Heute morgen, 12 bzw 0 Uhr" 
[DateTime] $MidnightEarlierThisMorning = [DateTime]::Today; 

# Filtere Dateiobjekte nach jenen, die nach der bezeichneten Uhrzeit verändert wurden
# und schreibe Ergebnis in die Pipeline (=> Ausgabe)

$fileList | ? { $_.LastWriteTime -gt $MidnightEarlierThisMorning};



"If you give a man a fish he is hungry again in an hour. If you teach him to catch a fish you do him a good turn."-- Anne Isabella Thackeray Ritchie

Eingefügtes Bild
Eingefügtes Bild
0

#9 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 02. März 2017 - 17:31

Beitrag anzeigenZitat (tr1ckkyyy: 28. Februar 2017 - 08:54)

Ok, das habe ich nun verstanden.
Dann habe ich aber noch eine Frage, wenn ich nun keine Optionen für das Verschieben an sich angebe, werden die Dateien dann nur kopiert oder werden diese dann auch gelöscht?

Nur kopiert wenn ohne jegliche speziellen Optionen.
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0