Top-Themen

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 Dateien suchen in einem bestimmten Zeitraum und Archivbit setzen

Mitglied: zeroblue2005

zeroblue2005 (Level 2) - Jetzt verbinden

19.04.2010 um 08:17 Uhr, 4870 Aufrufe, 8 Kommentare

Hallo Zusammen,

benötige Hilfe für die erstellung einer kleinen Batchdatei. Folgendes soll ausgeführt werden:

Suche in einer Pfadangabe inkl. Unterverzeichnissen nach allen Dateien *.* in einem bestimmten Zeitraum (Erstellungsdatum). Setze bei allen diesen Dateien das Archivbit!

Finde irgendwie nichts passendes. Kann mir da jemand helfen?

Danke und Gruß Mike
Mitglied: Snowman25
19.04.2010 um 12:07 Uhr
Zitat von zeroblue2005:
Hallo Zusammen,
Hallo zeroblue2005,

benötige Hilfe für die erstellung einer kleinen Batchdatei.
na dann schaun wir mal..

Folgendes soll ausgeführt werden:
Suche in einer Pfadangabe inkl. Unterverzeichnissen nach allen Dateien *.* in einem bestimmten Zeitraum (Erstellungsdatum). Setze
bei allen diesen Dateien das Archivbit!
Erstellungsdatum? das ist fies in batch...

Finde irgendwie nichts passendes. Kann mir da jemand helfen?
Wundert mich nicht, dass du nix passendes findest. Aber ich kann dir helfen.
Hier mal ein Debug-entwurf (macht noch nichts):
01.
@Echo off
02.
setlocal enabledelayedexpansion
03.
set thisyear=%date:~6,4%
04.
dir /a:-d /s /t:c>%TEMP%\archivebit.tmp
05.
for /F "tokens=1 delims=" %%A in (%TEMP%\archivebit.tmp) do (
06.
	Echo %%A
07.
	call :getDatefromDir %%A
08.
	for /F "tokens=4 delims= " %%B in ('Echo %%A') do (
09.
		Echo %%B
10.
	)
11.
)
12.

13.
:getDatefromDir
14.
set truedate=0
15.
set "fday="
16.
set "fmonth="
17.
set "fyear="
18.
set got=%1
19.
set fyear=%got:~6,4%
20.
set fmonth=%got:~3,2%
21.
set fday=%got:~0,2%
22.
if NOT defined fday Echo FDAY not defined: %got% && set truedate=0 && goto abort
23.
if NOT defined fmonth Echo FMONTH not defined: %got% && set truedate=0 && goto abort
24.
if NOT defined fyear Echo FYEAR not defined: %got% && set truedate=0 && goto abort
25.
	
26.
if DEFINED fday (
27.
	if NOT "x%fday%"=="x " (
28.
		if NOT "x%fday%"=="x" (
29.
			if %fday% GEQ 0 (
30.
				if %fday% LEQ 31 (
31.
					set truedate=1
32.
					Echo DAY - check
33.
				) else (
34.
					set truedate=0
35.
					goto abort
36.
				)
37.
			) else (
38.
				set truedate=0
39.
				goto abort
40.
			)
41.
		) else (
42.
			set truedate=0
43.
			goto abort
44.
		)
45.
	)
46.
)
47.

48.
if DEFINED fmonth (
49.
	if NOT "x%fmonth%"=="x " (
50.
		if NOT "x%fmonth%"=="x" (
51.
			if %fmonth% GEQ 0 (
52.
				if %fmonth% LEQ 12 (
53.
					set truedate=1
54.
					Echo MONTH - check
55.
				) else (
56.
					set truedate=0
57.
					goto abort
58.
				)
59.
			) else (
60.
				set truedate=0
61.
				goto abort
62.
			)
63.
		) else (
64.
			set truedate=0
65.
			goto abort
66.
		)
67.
	)
68.
)
69.

70.
if DEFINED fyear (
71.
	if NOT "x%fyear%"=="x " (
72.
		if NOT "x%fyear%"=="x" (
73.
			if %fyear% GEQ 0 (
74.
				if %fyear% LEQ %thisyear% (
75.
					set truedate=1
76.
					Echo YEAR - check
77.
				) else (
78.
					set truedate=0
79.
					goto abort
80.
				)
81.
			) else (
82.
				set truedate=0
83.
				goto abort
84.
			)
85.
		) else (
86.
			set truedate=0
87.
			goto abort
88.
		)
89.
	)
90.
)
91.
goto :EOF
92.

93.
:abort
94.
Echo %got%
95.
Echo Genuine: %truedate%
96.
pause>nul
97.
Echo ---------------------
98.
Echo.
99.
goto :EOF
Ist fast fertig.
Ich hoffe doch, dein Datum ist im Format DD.MM.YYYY formatiert...

Danke und Gruß Mike
Gruß
Snow
Bitte warten ..
Mitglied: bastla
19.04.2010 um 12:10 Uhr
Hallo zeroblue2005!

Etwa so (ungetestet):
01.
@echo off & setlocal
02.
set "Basis=D:\Startordner"
03.
set "Von=20100101"
04.
set "Bis=20100331"
05.

06.
for /f "delims=" %%i in ('dir /s /b /a-d "%Basis%"') do call :ProcessFile "%%i"
07.
goto :eof
08.

09.
:ProcessFile
10.
set Erst=
11.
for /f "tokens=1-3 delims=. " %%a in ('dir /tc %1^|findstr /i /e "%~nx1"') do set "Erst=%%c%%b%%a"
12.
if not defined Erst (echo Erstellungsdatum fuer %1 nicht ermittelt! & goto :eof)
13.
if %Erst% lss %Von% goto :eof
14.
if %Erst% leq %Bis% attrib +a %1
15.
goto :eof
Die Zeilen 3 und 4 sollten eigentlich selbsterklärend sein.

Wenn Du vor dem "attrib" noch ein "echo" platzierst, wird (zum Testen) der Befehl nur angezeigt, aber noch nicht ausgeführt ...

Grüße
bastla

[Edit]
@Snowman25: Jetzt schreibst Du so viel und bist immer noch früher fertig ...
Ich hoffe doch, dein Datum ist im Format DD.MM.YYYY formatiert...
Der Hoffnung schließe ich mich an ...
Zur Sicherheit dem "findstr" noch ein "/i" spendiert ...
[/Edit]
Bitte warten ..
Mitglied: Snowman25
19.04.2010 um 12:22 Uhr
Hi bastla,

möglicherweise ist meine (unfertige) Lösung etwas größer. Das liegt aber daran, dass ich 'ne getestet Validierungsroutine für das Datum drin habe, die ich so eig. überall einsetzen kann (und wohl auch werde).
Nur schaff ichs mal wieder nicht, Variablen aus der Schleife auch ausserhalb zu verwenden. Verhedder mich da jedesmal. Da gabs doch 'ne Möglichkeit dazu, oder?

Gruß
Snow
Bitte warten ..
Mitglied: zeroblue2005
19.04.2010 um 12:23 Uhr
Danke erst mal an euch beide Ich versuche es später mal, da im Monment bei uns hier ein wenig brennt.

Vielen Dank noch mal!!!!
Bitte warten ..
Mitglied: bastla
19.04.2010 um 12:29 Uhr
@Snowman25
'ne getestet Validierungsroutine für das Datum
... ist sicher eine gute Sache - ich gehe aber mal davon aus, dass noch nicht mal Windows einen 31.02. als Erstellungsdatum angibt ...
Variablen aus der Schleife auch ausserhalb zu verwenden.
Was genau meinst Du damit (hatte noch nicht Zeit, mir Deinen Ansatz näher anzusehen)?

Grüße
bastla
Bitte warten ..
Mitglied: Snowman25
19.04.2010 um 12:38 Uhr
Zitat von bastla:
@Snowman25
'ne getestet Validierungsroutine für das Datum
... ist sicher eine gute Sache - ich gehe aber mal davon aus, dass noch nicht mal Windows einen 31.02. als Erstellungsdatum angibt
Das sind Einzelfälle. Die werden dann später noch extra behandelt. wie gesagt: Ist ja noch nicht fertig

Variablen aus der Schleife auch ausserhalb zu verwenden.
Was genau meinst Du damit (hatte noch nicht Zeit, mir Deinen Ansatz näher anzusehen)?

Variablen, die in einer Schleife gesetzt wurden, gelten doch auch nur darin (Stichworte: Context, Geltungsbereich, namespace etc..).
DAS stört mich gerade..

Grüße
bastla

Grüße
Snow
Bitte warten ..
Mitglied: bastla
19.04.2010 um 15:21 Uhr
@Snowman25
Variablen, die in einer Schleife gesetzt wurden, gelten doch auch nur darin
Das kann ich nun beim besten Willen nicht nachvollziehen - zumeist ist es genau entgegengesetzt: Variablen, die in einer Schleife gesetzt wurden, können nur unter Verwendung von "delayedExpansion" auch gleich in der Schleife verwendet werden ...

Könntest Du das Problem vielleicht an einem konkreten Beispiel festmachen?
Übrigens: Deine Zeilen 26 bis 46 sollten sich ohne Verlust an Funktionalität (Du unterscheidest ja nicht nach dem Grund, der das Datum ungültig macht) auch so schreiben lassen:
01.
set /a "fdayCheck=1%fday%"
02.
set "truedate=0"
03.
if %fdayCheck% GEQ 101 if %fdayCheck% LEQ 131 set "truedate=1"
04.
if %truedate%==1 (Echo DAY - check) else (goto abort)
Auf "defined" hast Du schon in Zeile 22 geprüft, was die Abfragen in den Zeilen 26 und 28 obsolet macht.

Unter der Annahme, dass zweistellige Werte zu verarbeiten sind, beugt die Verwendung von "%fdayCheck%" Fehlern bei "08" und "09" vor ...
Um alle Schreibweisen abzudecken und wirklich nur Werte zwischen 1 und 31 "durchzulassen" müsste allerdings noch wesentlich mehr Aufwand getrieben werden - auch zB mit der "direkteren" Vorgangsweise
01.
if "%fday%"=="08" set "fday=8"
02.
if "%fday%"=="09" set "fday=9"
03.
set /a fdayCheck=%fday%
04.
set "truedate=0"
05.
if %fdayCheck% GEQ 1 if %fdayCheck% LEQ 31 set "truedate=1"
06.
if %truedate%==1 (Echo DAY - check) else (goto abort)
bleiben noch Fehlerquellen (wie etwa ein Wert "0A1") ...

Grüße
bastla
Bitte warten ..
Mitglied: zeroblue2005
20.04.2010 um 10:44 Uhr
Hallo Ihr beiden, also habe das jetzt getestet und läuft super vielen Dank noch mal
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Batch datei eine bestimmt Datei mit einer bestimmten software öffnen

gelöst Frage von Daoudi1973Batch & Shell3 Kommentare

Hallo zusammen, wir haben in der Arbeit Acrbat Reader als Standard Software um PDF-Dateien zu öffnen. meine Frage: wie ...

Microsoft Office

Word bestimmt Sprache selbst

gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Backup

Robocopy soll Archivbit nicht zurücksetzen

Frage von ReinhardSchwarzBackup9 Kommentare

Hallo, ich möchte mit Robocopy fortlaufend einen Sicherungsdatenbestand auf einen NAS-Server sichern. Dazu benutze ich Robocopy Quelle Ziel /MIR ...

Microsoft Office

Excel Such- und Vergleichsfunktion

gelöst Frage von oesi1989Microsoft Office15 Kommentare

Hallo zusammen, ich habe 2 Tabellen mit Name, Vorname und Arbeitgeber. 1. Tabelle Name Vorname Geb-Datum Arbeitgeber Straße Ort ...

Neue Wissensbeiträge
Administrator.de Feedback
Entwicklertagebuch: Die nächste Version
Information von admtech vor 17 StundenAdministrator.de Feedback4 Kommentare

Hallo Administrator User, vielleicht haben es einige User schon mitbekommen: Wir arbeiten aktuell an einer komplett neuen Version von ...

Windows Server

Active Directory ESE Version Store Changes in Server 2019

Information von Dani vor 4 TagenWindows Server

Moin, Last month at Microsoft Ignite, many exciting new features rolling out in Server 2019 were talked about. But ...

Exchange Server

Microsoft Extending End of Support for Exchange Server 2010

Information von Dani vor 4 TagenExchange Server4 Kommentare

Moin, After investigating and analyzing the deployment state of an extensive number of Exchange customers we have decided to ...

Schulung & Training

Humble Book Bundle: Network and Security Certification 2.0

Tipp von NetzwerkDude vor 4 TagenSchulung & Training

Abend, bei HumbleBundle gibts mal wider ein schönes Paket e-books: sind verschiedene Zertifizierungen wie MCSA, CCNA, CompTIA etc., für ...

Heiß diskutierte Inhalte
Visual Studio
Prüfen, ob Programm schon disposed wurde
Frage von MarcoBornVisual Studio17 Kommentare

Hallo Forum, ich habe in VB.NET ein Programm geschrieben, welches Word startet und dort Daten ausliest. Obwohl ich die ...

Netzwerkgrundlagen
Zukunftsicheres Heimnetzwerk aufbauen
Frage von CRO-WarriorNetzwerkgrundlagen16 Kommentare

Hallo Leute. Ich bin dabei das Haus in Kroatien zu renovieren. Da hab ich jetzt die Möglichkeit alles so ...

DNS
DNS Probleme nach Umstellung auf IPv6
Frage von thunderbird304DNS16 Kommentare

Hi Leute! Folgende Problematik: Umstieg von Glasfaser auf Telekom Buisiness DSL. Durch die Umstellung ist die FritzBox nun Gateway. ...

Windows 10
Computer stürzt beim öffnen einer Software mit einem bestimmten Domänen User ab
Frage von PhilipSysWindows 1013 Kommentare

Hallo Zusammen, ich habe momentan mit einem recht harten Problem zu kämpfen! Ein User bei uns hat das Problem ...