Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Aktuelle Dateien mit Hilfe einer Batch-Routine suchen

Frage Entwicklung Batch & Shell

Mitglied: joe65

joe65 (Level 1) - Jetzt verbinden

03.08.2013 um 17:53 Uhr, 1951 Aufrufe, 5 Kommentare

Hallo,

ich möchte mit Hilfe eines Batch-Scriptes alle Dateien, deren Änderungsdatum aktueller ist als ein vorgegebenes Datum in eine Datei "Aktuelle_Dateien.txt" schreiben.

Das von mir erstellte Script kann das aber nicht. Ich weiß nicht was da falsch ist.

Beginn des Scripts:
@echo off
setlocal
cls

echo Aktuelle Dateien im Verzeichnis ermitteln!

set "Ergebnisdatei=Aktuelle_Dateien.txt"

TITLE Aktuelle Dateien ermitteln

set myPath=
set /p myPath=Geben Sie einen Pfad ein:
if /i '%myPath%'=='' (
echo Es wurde kein Pfad eingegeben!
pause
exit
)
if /i not exist %myPath% (
goto eof
)

set myDate=
set /p myDate=Geben Sie ein Datum ein:
echo.
echo myDate=%myDate%

echo Aktuelle Dateien im Verzeichnis %myPath% ermitteln und in eine Ergebnisdatei = %Ergebnisdatei% schreiben!

for /f "delims=" %%i in ('dir "%myPath%\*.*" /s /b') do (
if "%%~ti" GEQ "%myDate%" (
echo %%~fi >> %Ergebnisdatei%
)
)
exit
:eof
echo Ungueltiger Pfad: %myPath%
pause
Ende des Scripts

Mitglied: bastla
03.08.2013, aktualisiert um 18:15 Uhr
Hallo joe65!

Es werden so nicht Datumswerte, sondern Strings verglichen - dadurch wäre zB
01.08.2012
größer als
01.07.2013
(weil eben "8" > "7"). Wenn Du das Datum in die Form "JJJJMMTT" bringst, wird der Vergleich funktionieren ...
Du könntest das Ganze aber vereinfachen, indem Du
xcopy /LSY /D:M-T-J "%myPath%" C:\|findstr /vc:"Datei(en) kopiert">"%Ergebnisdatei%"
verwendest.

Grüße
bastla

[Edit] Beispiel vervollständigt [/Edit]
Bitte warten ..
Mitglied: joe65
03.08.2013 um 18:16 Uhr
Hallo bastla,

habe den xcopy - Befehl ins Script eingebaut, geht aber trotzdem nicht.

@echo off
setlocal
cls

echo Aktuelle Dateien im Verzeichnis ermitteln!

set "Ergebnisdatei=Aktuelle_Dateien.txt"

TITLE Aktuelle Dateien ermitteln

set myPath=
set /p myPath=Geben Sie einen Pfad ein:
if /i '%myPath%'=='' (
echo Es wurde kein Pfad eingegeben!
pause
exit
)
if /i not exist %myPath% (
goto eof
)

set myDate=
set /p myDate=Geben Sie ein Datum ein:
echo.
echo myDate=%myDate%

echo Aktuelle Dateien im Verzeichnis %myPath% ermitteln und in eine Ergebnisdatei = %Ergebnisdatei% schreiben!

rem xcopy /L /D:M-T-J

for /f "delims=" %%i in ('dir "%myPath%\*.*" /s /b') do (
xcopy /L /D:%myDate% >> %Ergebnisdatei%
)

exit
:eof
echo Ungueltiger Pfad: %myPath%
pause
Bitte warten ..
Mitglied: bastla
03.08.2013 um 18:20 Uhr
Hallo joe65!

Der "xcopy"-Befehl (ich habe das Beispiel oben inzwischen komplettiert) ersetzt die gesamte "for"-Schleife ...

Grüße
bastla

P.S.: Verwende für Batch-Schnipsel doch bitte "Code"-Formatierung (lässt sich auch nachträglich noch durchführen) ...
Bitte warten ..
Mitglied: joe65
03.08.2013 um 18:29 Uhr
Hallo bastla,

Danke für deine Hilfe. Jetzt funktioniert die Sache.
Bitte warten ..
Mitglied: bastla
03.08.2013 um 18:49 Uhr
Hallo joe65!
Jetzt funktioniert die Sache.
... bis auf die "Code"-Formatierung ...

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
Maximale Größe zu verarbeitender txt-Dateien mit Batch (5)

Frage von Muck1303 zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mehrere PDF-Dateien per Batch zusammenfügen (1)

Frage von Grimmli zum Thema Batch & Shell ...

Batch & Shell
Nur aktuelle Dateien kopieren (3)

Frage von icke.hausen zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...