Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

in der FOR Schleife Werte aktualisieren

Mitglied: Dino2002

Hallo,

ich möchte mit einer Batch FOR Schleife nach Dateien in dem Ordner "local" suchen und diese anschließend zum Ordner "remote" verschieben und dabei den Dateinamen mit Datum und Zeit erweitern. Es funktioniert soweit, allerdings wird das Datum bei einem erneuten Aufruf der FOR Schleife beibehalten. Sprich, wenn ich 100 Dateien verschieben dann haben alle Dateien die gleiche Uhrzeit. Wie kann ich in einer FOR Schleife die Uhrzeit aktualisieren? Ich möchte jedoch die verschobenen Dateien nicht nachträglich verarbeiten "umbenennen" sondern alles mit einem Abwasch erledigen.

if "%1"=="" (
start /WAIT /B cmd.exe /V:on /C "%~0" run!
goto:eof
)

SETLOCAL

SET LOCAL_DIR=C:\Temp\local
SET REMOTE_DIR=C:\Temp\remote

FOR %%i IN (%LOCAL_DIR%\*.*) DO (

SET TIMESTP=%date:~-4%-%date:~-7,2%-%date:~-10,2%_%time:~-11,2%%time:~-8,2%%time:~-5,2%
MOVE /Y "%%i" "%REMOTE_DIR%\%%~ni_!TIMESTP!.txt"
)

Content-Key: 101565

Url: https://administrator.de/contentid/101565

Ausgedruckt am: 25.07.2021 um 11:07 Uhr

Mitglied: bastla
bastla 11.11.2008 um 18:53:30 Uhr
Goto Top
Hallo Dino2002!

Du verwendest zwar "delayedExpansion" (das Kunststück mit dem "CMD"-Aufruf kannst Du aber eigentlich einsparen und "setlocal enabledelayedexpansion" dafür verwenden), allerdings musst Du natürlich auch %date% und %time% "verzögert" auflösen, also etwa:
Da wir schon bei Überflüssigem waren: Der Schalter "/Y" wird für "MOVE" in einem Batch nicht benötigt ...

Grüße
bastla
Mitglied: Biber
Biber 11.11.2008 um 19:10:09 Uhr
Goto Top
Moin Dino2002 und bastla,

...wobei sich mir die Frage aufdrängt, ob denn dieses kryptische Gewurschtel den erhofften Zusatznutzen bringt....

Wieso ist es denn für kommende Generationen von Bedeutung oder erhaltenswert zu wissen, ob die Datei Readme.txt denn nun um 19:04:34 oder um 19:04:37 geMOVED wurde???

Ich würde mir den Heckmeck ersparen und alle von EINEM Job (bzw. Batch) kopierten Dateien mit EINEM Zeitstempel versehen.
Das macht es auch einfacher, wenn Du mal einen kompletten Lauf löschen oder auch nur filtern willst.

Also: einmal "SET TIMESTP=20081111_190820" vor der FOR-Anweisung und kein Firlefanz mit Zeitstempel je Datei ermitteln.

Grüße
Biber
Mitglied: Dino2002
Dino2002 11.11.2008 um 23:52:18 Uhr
Goto Top
Hallo Bastla und Biber,

danke für die schnelle und sehr hilfsreiche Unterstützung. Ich hätte noch erwähnen müssen dass die Batch anschließend noch erweitert wird um für jede übertragene Datei ein separates Logfile zu erstellen - sonst hätte ich sicherlich den einfacheren Weg gewählt ;-) face-wink

*freu*

Viele Grüße

Dino2002
Heiß diskutierte Beiträge
question
RAM-Zugriff auf einem neuen High-Performance Server, teilweise um Welten langsamer als auf einer WorkstationMysticFoxDEVor 1 TagFrageBenchmarks47 Kommentare

Moin Zusammen, mir ist gestern beim Optimieren eines neuen Servers eine Sonderheit aufgefallen, die ich mir so beim besten Willen, momentan absolut nicht erklären kann. ...

general
Kosten nicht gerechtfertigt? Dienstleister stellt Kosten für "Troubleshooting" bei Neuanschaffung von HCI + CoreSwitchDirty2186Vor 1 TagAllgemeinZusammenarbeit17 Kommentare

Hallo Zusammen, ich interessiere mich für Eure Meinung zu dem Thema Leistungsnachweise von Systemhäusern und Dienstleistern und deren Berechnung von Leistungen. Da sich hier ja ...

question
Listet Microsoft Default ACLs von Windows?DerWoWussteVor 1 TagFrageSicherheit18 Kommentare

Moin Kollegen. Nach dem Sicherheits-GAU "Hivenightmare" stellt sich mir die Frage, wie ich in Zukunft sicherstellen kann, dass die ACLs der Systemdateien in Windows korrekt ...

question
Erfahrungen mit CodeTwo Exchange Migration von 2016-2019dlohnierVor 2 TagenFrageExchange Server19 Kommentare

Hallo, ich möchte unseren Exchange Server 2016 der noch auf WIndows 2016 läuft auf einen Server 2019 mit Exchange 2019 migrieren. Habe das Tool "CodeTwo ...

question
Doppelte A-Records in DNSBPeterVor 1 TagFrageWindows Server10 Kommentare

Hallo, unsere Windows Notebooks registrieren sich im DNS mit ihrer Lan- und Wlan Adresse. D.h. es gibt 2 gleiche Namen mit 2 unterschiedlichen IP-Adressen. Wie ...

question
2U Home-Server Frage zur HardwaremossoxVor 23 StundenFrageServer-Hardware10 Kommentare

Hallo zusammen, ich habe in den letzten Jahren auf die Systeme von Synology gesetzt. Im Wesentlichen ging es immer nur um simple CIFS Dienste, nichts ...

question
Powershell Ordner löschen die älter als x Tage sindsascha46Vor 20 StundenFrageEntwicklung6 Kommentare

Hallo Ich würde gerne in einem Verzeichnis alle Ordner die älter als X Tage sind löschen. Aber irgendwie bekomme ich das nicht hin. Bisher habe ...

question
Firmengelände Glasfaser mehrere GebäudeTonLichtVideoVor 18 StundenFrageNetzwerke4 Kommentare

Hallo zusammen, Ist Zustand: Firmengelände mit mehreren großen Hallen die zentral per Glasfaser verbunden werden sollen. Längen zwischen 100 und 400 Metern. Aufgrund der Zukunftssicherheit ...