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, 1948 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
Ähnliche Inhalte
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 ...

Batch & Shell
gelöst Zwei PDF-Dateien zusammen führen per Batch (3)

Frage von hongziehong zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hardware
Laptop ins Salzwasser gefallen (18)

Frage von Marcel94 zum Thema Hardware ...

Hardware
Lenovo Yoga 500 über angeschlossene USB Tastatur booten (12)

Frage von thomasreischer zum Thema Hardware ...