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

Per Batch nach neuen Ordnern suchen

Frage Entwicklung Batch & Shell

Mitglied: dhdesignz

dhdesignz (Level 1) - Jetzt verbinden

21.09.2010, aktualisiert 18:50 Uhr, 3068 Aufrufe, 9 Kommentare

Ich habe folgendes Problem.

Ich möchte eine Batch schreiben mit der ich nach bestimmten Ordnern suchen kann, die eventuell neu angelegt worden sind.

Z.b.: Es existiert ein Ordner A. In diesem Ordner sind die Ordner A1, A2 und A3. Diese drei Ordner haben Unterordner, die aber nicht ausgwertet werden müssen.

Es soll nun mit der Batch überprüft werden ob eventuell ein Ordner A4, A5... angelegt worden ist. Wenn ja soll dies in einer txt gespeichert werden. In diesem Beispiel gehen wir davon aus das Ordner A4 und A5 neu angelegt worden sind. Diese stehen nun in der txt. Vielleicht sogar mit Pfandangabe?

Beim nächsten Scan soll nur noch nach den Ordner neuer als A5 gesucht werden und wiederrum das Ergebnis ist die txt überschrieben werden.

Es geht darum zu überprüfen wechle Ordner neu angelegt worden sind und vorallem wann.

Ich hoffe jemand kann mir helfen.

Habe einige Sachen gefunden, aber nicht das was ich leider benötige.

Gruß
Dorian
Mitglied: bastla
21.09.2010 um 18:01 Uhr
Hallo dhdesignz und willkommen im Forum!

Du könntest es so versuchen:
01.
@echo off & setlocal 
02.
set "Ordner=D:\A" 
03.
set "Liste=%Ordner%\Ordnerliste.txt" 
04.
set "Neue=%Ordner%\Neu.txt" 
05.
 
06.
pushd "%Ordner%" 
07.
del "%Neue%" 2>nul 
08.
if not exist "%Liste%" type nul>"%Liste%" 
09.
for /f "delims=" %%i in ('dir /b /ad^|findstr /i /v /g:"%Liste%"') do for /f "tokens=1-2" %%a in ('dir /tc "%%i"^|findstr /c:"\.\."') do ( 
10.
    >>"%Neue%" echo %%a %%b %%i 
11.
    >>"%Liste%" echo %%i 
12.
13.
popd
Beim ersten Durchlauf wird im vorgegebenen Ordner lt Zeile 2 die Datei "Ordnerliste.txt" erzeugt und bei weiteren Batchläufen ergänzt. In "Neu.txt" (ebenfalls in diesem Ordner) stehen dann jeweils die Namen der neuen Ordner samt Erstellungsdatum (nach dem ersten Durchlauf natürlich alle zu diesem Zeitpunkt vorhandenen Ordner).

Es werden in dieser Version nur Ordner erfasst, die es vorher noch nicht gab - wurde also etwa A3 gelöscht und später wieder angelegt, wird dies nicht erkannt. Falls immer nur gegenüber dem vorigen Batchlauf verglichen werden soll, müsste die Zeile 11 entfernt und vor dem "popd" eine Zeile
>"%Liste%" dir /b /ad
eingefügt werden.

Grüße
bastla
Bitte warten ..
Mitglied: dhdesignz
21.09.2010 um 18:29 Uhr
Super. Danke. Werde das gleich ausprobieren. Ist es möglich eine Batch automatisiert auszuführen?
Bitte warten ..
Mitglied: bastla
21.09.2010 um 18:34 Uhr
Hallo dhdesignz!
Ist es möglich eine Batch automatisiert auszuführen?
Du meinst, so wie andere Geplante Tasks?

Grüße
bastla
Bitte warten ..
Mitglied: Biber
21.09.2010 um 18:35 Uhr
[OT]
Moin dhdesignz,
willkommen im Forum.

Zitat von dhdesignz:
...
einer txt gespeichert werden. In diesem Beispiel gehen wir davon aus das Ordner A4 und A5 neu angelegt worden sind.
Diese stehen nun in der txt. Vielleicht sogar mit Pfandangabe?
Das wird sehr,sehr kniffelig...
Welchen Wert sollen wir denn bei Einweg-Ordnern ansetzen?
Soll die Pfand-Ordnerrückgabe auch mit native Batch realisiert werden oder dürfen wir da auf eine höhere Programmiersprachen ausweichen?
Bätches sind nicht so geeignet zum Pfandbon-Drucken...

Aber sonst: eine der wohlformuliertesten Fragestellungen seit langem. Respekt.

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: dhdesignz
21.09.2010 um 18:49 Uhr
Zitat von Biber:
[OT]
Moin dhdesignz,
willkommen im Forum.

> Zitat von dhdesignz:
> ----
> ...
> einer txt gespeichert werden. In diesem Beispiel gehen wir davon aus das Ordner A4 und A5 neu angelegt worden sind.
> Diese stehen nun in der txt. Vielleicht sogar mit Pfandangabe?
Das wird sehr,sehr kniffelig...
Welchen Wert sollen wir denn bei Einweg-Ordnern ansetzen?
Soll die Pfand-Ordnerrückgabe auch mit native Batch realisiert werden oder dürfen wir da auf eine höhere
Programmiersprachen ausweichen?
Bätches sind nicht so geeignet zum Pfandbon-Drucken...

Aber sonst: eine der wohlformuliertesten Fragestellungen seit langem. Respekt.

Grüße
Biber
[/OT]

Bin selber leider nicht sehr versiert im Umgang mit Programmiersprachen. Es muss keine Batch sein. Dachte aber das dies die einfachste Lösung wäre.

Was meinst du mit: "Welchen Wert sollen wir denn bei Einweg-Ordnern ansetzen?"
Bitte warten ..
Mitglied: dhdesignz
21.09.2010 um 18:57 Uhr
Zitat von bastla:
Hallo dhdesignz und willkommen im Forum!

Du könntest es so versuchen:
01.
@echo off & setlocal 
02.
> set "Ordner=D:\A" 
03.
> set "Liste=%Ordner%\Ordnerliste.txt" 
04.
> set "Neue=%Ordner%\Neu.txt" 
05.
>  
06.
> pushd "%Ordner%" 
07.
> del "%Neue%" 2>nul 
08.
> if not exist "%Liste%" type nul>"%Liste%" 
09.
> for /f "delims=" %%i in ('dir /b /ad^|findstr /i /v /g:"%Liste%"') do for /f "tokens=1-2" 
10.
> %%a in ('dir /tc "%%i"^|findstr /c:"\.\."') do ( 
11.
>     >>"%Neue%" echo %%a %%b %%i 
12.
>     >>"%Liste%" echo %%i 
13.
> ) 
14.
> popd 
15.
> 
Beim ersten Durchlauf wird im vorgegebenen Ordner lt Zeile 2 die Datei "Ordnerliste.txt" erzeugt und bei weiteren
Batchläufen ergänzt. In "Neu.txt" (ebenfalls in diesem Ordner) stehen dann jeweils die Namen der neuen Ordner
samt Erstellungsdatum (nach dem ersten Durchlauf natürlich alle zu diesem Zeitpunkt vorhandenen Ordner).

Es werden in dieser Version nur Ordner erfasst, die es vorher noch nicht gab - wurde also etwa A3 gelöscht und später
wieder angelegt, wird dies nicht erkannt. Falls immer nur gegenüber dem vorigen Batchlauf verglichen werden soll, müsste
die Zeile 11 entfernt und vor dem "popd" eine Zeile
>"%Liste%" dir /b /ad 
> 
eingefügt werden.

Grüße
bastla
Bitte warten ..
Mitglied: dhdesignz
21.09.2010 um 19:02 Uhr
Leider funktioniert der Code nicht bei mir. Habe Testweise der Ordner A auf der Partition C: angelegt. Darin enthalten die Ordner A1, A2 und A3. Nach ausführen der Bat wird die Ordnerliste.txt erstellt, die aber leider leer bleibt. Nachdem ich weitere Ordner erstellt habe und die Bat erneut ausgeführt habe wurde die Neu.txt nicht angelegt. Die Ordnerliste.txt blieb leider weiterhin leer. Woran könnte es liegen? Könnte es an meinem 64Bit Windows 7 liegen?

Gruß
Dorian
Bitte warten ..
Mitglied: bastla
21.09.2010 um 20:04 Uhr
Hallo dhdesignz!
Könnte es an meinem 64Bit Windows 7 liegen?
Leider nicht daran, sondern am Batch ; so sollte es besser gehen:
01.
@echo off & setlocal 
02.
set "Ordner=C:\A" 
03.
set "Liste=%Ordner%\Ordnerliste.txt" 
04.
set "Neue=%Ordner%\Neu.txt" 
05.
 
06.
pushd "%Ordner%" 
07.
del "%Neue%" 2>nul 
08.
if not exist "%Liste%" >"%Liste%" dir /b /ad 
09.
for /f "delims=" %%i in ('dir /b /ad^|findstr /i /v /g:"%Liste%"') do for /f "tokens=1-2" %%a in ('dir /tc "%%i"^|findstr /c:"\.\."') do ( 
10.
    >>"%Neue%" echo %%a %%b %%i 
11.
    >>"%Liste%" echo %%i 
12.
13.
popd 
14.
if exist "%Neue%" echo Neue Ordner: & type "%Neue%"
Es wird jetzt beim ersten Batchlauf nur die Ordnerliste (bitte die bereits vorhandene "Ordnerliste.txt" vorweg löschen), nicht aber eine Datei "Neu.txt" erstellt. Auch bei nachfolgenden Läufen wird die Datei "Neu.txt" nur entstehen, wenn tatsächlich neue Ordner gefunden wurden - lässt sich so dann auch leichter weiterverarbeiten ...

Grüße
bastla
Bitte warten ..
Mitglied: dhdesignz
21.09.2010 um 20:16 Uhr
Super. Funktionier 1A. Mal schauen was ich nun noch alles hinzufügen kann.
Mal probieren ob ich es schaffe, dass Ergebnis per Email zu verschicken.

Ist eine super Seite hier. Kompetent und hilfreich.

Allen einen schönen Abend.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch xkopie von Ordner in Ordner (3)

Frage von TicTakTeo zum Thema Batch & Shell ...

Administrator.de Feedback
Entwicklertagebuch: Unsere neue Suche (2)

Information von admtech zum Thema Administrator.de Feedback ...

Exchange Server
gelöst Transportregel für neue Beiträge in öffentlichem Ordner (2)

Frage von ahstax zum Thema Exchange Server ...

Batch & Shell
Neuere Datei per Batch ausfinding machen (2)

Frage von chattie zum Thema Batch & Shell ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
SAN, NAS, DAS
MSA 2050 RAID Konfig (30)

Frage von Leo-le zum Thema SAN, NAS, DAS ...

Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...

Netzwerkmanagement
Windows Server 2008 R2: "netsh reset" nicht verfügbar? (11)

Frage von RickTucker zum Thema Netzwerkmanagement ...