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 bereits importierte Ordner erkennen

Frage Entwicklung Batch & Shell

Mitglied: Crusher007

Crusher007 (Level 1) - Jetzt verbinden

22.06.2010 um 12:54 Uhr, 3022 Aufrufe, 7 Kommentare

Hallo liebe Admin-Gemeinde,
ich komme leider nicht weiter und benötige dringend die Hilfe der Community, ich hoffe sehr dass mir jemand helfen kann und mein Problem versteht

Also folgendes Scenario:

Es existiert ein Verzeichnis, welches jeden Tag erneut mit Tagesordnern befüllt wird, die abends auf einen anderen Server verschoben werden, z.B.:

2010\
\F0602
\F0604
\F0612

Diese lasse ich mir nun in eine Logdatei (inhalt.txt) schreiben, verschiebe sie anschließend auf den anderen Server und möchte nun am nächsten Tag, dass folgendes von meiner Batch ausgeführt wird:

for /f "tokens=1,2*" %%a(hier:aktuelle Ordner im Verzeichnis -> "F0602,F0604") do "suche %%a in ('inhalt.txt')

Wenn gleicher Ordner in "inhalt.txt" bereits geloggt wurde, dann verschiebe den aktuellen Ordner in "_Achtung" und schicke Mail per Blat.

Leider komme ich mit diesen for-Konstrukten noch nicht so richtig zurecht, so dass ich an der korrekten Ausformulierung scheitere.

Wäre klasse wenn mir jemand helfen könnte und freue mich auf Eure Antworten!

Greets
Crusher007
Mitglied: bastla
22.06.2010 um 14:30 Uhr
Hallo Crusher007!

Wenn es um Ordner geht, wäre eigentlich eine "for /d"-Schleife das richtige Werkzeug - ungetestet etwa so:
01.
@echo off & setlocal 
02.
set "Basis=D:\2010" 
03.
set "Achtung=D:\_Achtung" 
04.
set "Liste=D:\inhalt.txt" 
05.
 
06.
for /d %%i in ("%Basis%\*.*") do findstr /c:"%%~nxi" "%Liste%" && ( 
07.
    echo move "%%i" "%Achtung%" 
08.
    echo blat ... 
09.
)
Falls nicht für jeden Ordner eine Mail erzeugt werden soll, könnte das so aussehen:
01.
@echo off & setlocal 
02.
set "Basis=D:\2010" 
03.
set "Achtung=D:\_Achtung" 
04.
set "Liste=D:\inhalt.txt" 
05.
 
06.
set "Ordner=" 
07.
for /d %%i in ("%Basis%\*.*") do findstr /c:"%%~nxi" "%Liste%" && call :ProcessFolder "%%i" 
08.
if defined Ordner echo blat ... %Ordner% 
09.
goto :eof 
10.
 
11.
:ProcessFolder 
12.
echo move %1 "%Achtung%" 
13.
set "Ordner=%Ordner%%~1 " 
14.
goto :eof
Das "echo" vor dem "move" ist für die Testphase gedacht, und die Zeile für "blat" hast Du ja vermutlich schon fertig (wobei in der zweiten Variante die Ordnerliste zusätzlich in den "body" aufgenommen werden könnte).

Grüße
bastla
Bitte warten ..
Mitglied: Crusher007
24.06.2010 um 09:19 Uhr
Moin bastla!

Geile Sache, genau das was ich wollte :D geht 1a!
Hab auch nix anderes von dir erwartet, nachdem was ich schon so von dir hier im Forum gelesen habe ;)
Also besten Dank für die Lösung und weiter so ! ;)

Greets Crusher
Bitte warten ..
Mitglied: bastla
24.06.2010 um 10:28 Uhr
Hallo Crusher007!

Freut mich, dass es passt - und danke für die Blumen ...

Grüße
bastla
Bitte warten ..
Mitglied: Crusher007
24.06.2010 um 12:03 Uhr
Zitat von bastla:
Hallo Crusher007!

Freut mich, dass es passt - und danke für die Blumen ...

Grüße
bastla

Hey bastla!
Gern geschehen, hast es dir verdient

Aber ich hätte da nochmal ne Anschlussfrage:
Ist es auch möglich noch einen weiteren "Unter-Process" einzubauen, indem das Script nicht nur den Ordner prüft sondern ebenfalls die darin enthaltene Datei !?
Sprich: Erst wenn die Datei in dem bereits importierten Ordner ebenfalls genau so mit der Ordnerstruktur (z.B. "F0607\1025421.bld") importiert wurde, dann schicke mir ne Benachrichtigungs-Mail!
Hat das wer verstanden? *g*
Dann würde ich mich riesig über eine weiter Hilfe freuen
Komm da leider auch wieder, trotz bastla`s Muster, nicht weiter....

Herzlichen Dank,
Greets Crusher
Bitte warten ..
Mitglied: bastla
24.06.2010 um 20:42 Uhr
Hallo Crusher007!

So ganz habe ich's leider tatsächlich nicht verstanden - soll denn geprüft werden, ob der gefundene Ordner (irgend)eine .bld-Datei beinhaltet bzw gibt es auch für die Datei(en) eine Liste zum Vergleich? Wenn nein: nach welchem Kriterium könnte die Datei geprüft werden?

Grüße
bastla
Bitte warten ..
Mitglied: Crusher007
24.06.2010 um 23:10 Uhr
Hey bastla, prima das du dich nochmal meldest! Dafür schonmal vielen Dank!

Also im Grunde genommen soll das Script nicht nur die vorliegenden Ordner, sondern die Ordner und die darin befindlichen Dateien mit den in der Liste enthaltenen Ordnern/Dateien abgleichen

In der Liste steht z.B. folgendes:

F0506\102035.bld
F0506\188088.bld
F0622\199910.bld
F1009\653211.bld

und in dem aktuellen Ordner liegen z.b. folgenden Verzeichnisse mit Dateien:

F0506\112135.bld
F0506\199088.bld
F0622\199910.bld <------------- Die Datei wurde bereits importiert und steht daher in der obigen Liste (inhalt.txt)
F1009\6544211.bld

Ich dachte mir das halt so, dass ich in dein Script einfach an der Stelle

01.
for /d %%i in ("%Basis%\*.*") do findstr /c:"%%~nxi" "%Liste%" && call :ProcessFolder "%%i"  
02.
 
03.
:ProcessFolder  
04.
echo move %1 "%Achtung%"  
05.
set "Ordner=%Ordner%%~1 "  
06.
goto :ProcessFile <---------------- Hier weitere Prüfung auf bereits importierte Datei
eine weitere Abfrage auf die Datei in dem Ordner mache. Erst wenn die enthaltene Dateie(n) in Verbindung mit dem Ordner in der Liste steht, dann schicke die Mail per blat.

Ich hoffe das macht es etwas deutlicher ;)

Schönen Abend noch,
Gruß Crusher
Bitte warten ..
Mitglied: bastla
25.06.2010 um 07:51 Uhr
Hallo Crusher007!

Deine Skizze wirft für mich noch weitere (Verständnis-)Fragen auf:
  • Soll tatsächlich jeder Ordner, der in der Liste aufscheint, auf jeden Fall verschoben werden und
  • soll erst dann auch noch geprüft werden, ob Dateien aus der Liste im Ordner enthalten sind, um erst, wenn auch das zutrifft, eine Mail zu verschicken?

  • Sind die Dateien nur zu melden, oder zusätzlich noch zu "behandeln" (zB verschieben)?

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch - Datei aus Ordner einlesen mit Ausnahmen! (4)

Frage von Daedrafaction zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Dateien in einen Ordner - ext. Festplatte übertragen (2)

Frage von tocksick zum Thema Batch & Shell ...

Batch & Shell
gelöst Per FTP-Shell oder Batch in ein unbekanten Ordner wechseln (8)

Frage von Ducky2 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...