Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

in der FOR Schleife Werte aktualisieren

Frage Entwicklung Batch & Shell

Mitglied: Dino2002

Dino2002 (Level 1) - Jetzt verbinden

11.11.2008, aktualisiert 23:52 Uhr, 4505 Aufrufe, 3 Kommentare

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"
)
Mitglied: bastla
11.11.2008 um 18:53 Uhr
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:
01.
@echo off & SETLOCAL enabledelayedexpansion 
02.
 
03.
SET LOCAL_DIR=C:\Temp\local 
04.
SET REMOTE_DIR=C:\Temp\remote 
05.
 
06.
FOR %%i IN (%LOCAL_DIR%\*.*) DO ( 
07.
    SET TIMESTP=!date:~-4!-!date:~-7,2!-!date:~-10,2!_!time:~-11,2!!time:~-8,2!!time:~-5,2! 
08.
    MOVE "%%i" "%REMOTE_DIR%\%%~ni_!TIMESTP!.txt" 
09.
)
Da wir schon bei Überflüssigem waren: Der Schalter "/Y" wird für "MOVE" in einem Batch nicht benötigt ...

Grüße
bastla
Bitte warten ..
Mitglied: Biber
11.11.2008 um 19:10 Uhr
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
Bitte warten ..
Mitglied: Dino2002
11.11.2008 um 23:52 Uhr
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

*freu*

Viele Grüße

Dino2002
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell - Werte in Variable durch Schleife erweitern bzw. ändern (5)

Frage von ralfkausk zum Thema Batch & Shell ...

Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

PHP
gelöst PHP Version und Joomla aktualisieren (2)

Frage von Leo-le zum Thema PHP ...

Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(4)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Virtualisierung
Unterschied zwischen VDI und Terminal Server Lösungen (13)

Frage von tukawi06 zum Thema Virtualisierung ...