Ordner auf Inhalt prüfen

ReFra

Grünschnabel
Hallo zusammen,
ich bin neu in dem Forum. Ich sollte ein Script zur Prüfung eines Ordnerinhalts habe. Leider drehe ich mich grad irgendwie nur noch im Kreis.
Würde mich freuen wenn mir jemand beim erstellen einer Batch oder PS-Scripts helfen könnte.

Kurze Beschreibung meines Problems:
Jeden Morgen wird in einem Laufwerk mittels eines Scripts ein Ordner mit dem Namen des aktuellen Datums JJJJ-MM-TT erstellt. Eine Anwendung die Bilder erzeugt (Bilder von durchlaufenden Paletten auf einem Band) speichert diese Bilder in diesem Ordner. Manchmal bleibt die Anwendung aber hängen. So wird dann oft tagelang keine Bilder-Doku erstellt. Ich möchte nun jeden Morgen um 07:00 Uhr (üb. Aufgabenplaner) ein Script laufen lassen. Dieses sollte prüfen ob am heutigen Tag in dem akteullen Ordner (JJJJ-MM-TT) bereits Dateien erzeugt worden sind. Falls Ja. kann das Script beendet werden . Falls aber Nein liegt ein Fehler vor. In dem Fall starte ich aus der Batch heraus ein weiteres Script (ps) das mir eine eMail sendet.

Für Euere Hilfe DANKE im Voraus!

VG
Franz
 
Lösung
Vielleicht kannst du ja mein Batch-Skript von hier Bild mit Powershel kopieren und umbenennen
anpassen

Vielleicht so:
Bash:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set dt=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
@echo %dt%
Set SourceFiles=c:\Temp\Ein Ordner\%dt%
@echo %SourceFiles%
For %%A in (%SourceFiles%*.*) Do (
Set InFile=%%~nA
Set Extension=%%~xA
Set OutFile=!InFile!!Extension!
@echo !OutFile!
IF NOT EXIST !OutFile! SendMailFromPowerShell
EXIT
)

Achtung: SourceFiles is so gewählt, dass diese Batch-Datei im Ordnerbaum direkt über den "YYYY-MM-DD"-Ordnern sitzt.
Ansonsten einen absoluten Pfad angeben.
Set SourceFiles=c:\Temp\Ein Ordner\%dt%

Und suchen tut das Skript nach beliebiger Datei-Erweiterung.
Also falls as Jpgs sind...
So etwas? Bei dem "" in der zweiten Zeile kannst du noch einen Basis-Pfad angeben:

C#:
$currentDate = Get-Date -UFormat "%Y-%m-%d"
$folderToCheck = "<Basispfad>" + $currentDate

if ( -not( Test-Path -Path $folderToCheck ) )
{
  echo "Folder does not exist!"
  exit 1;
}
$numberOfFiles = (Get-ChildItem -File $folderToCheck | Measure-Object).Count
if ( $numberOfFiles -eq 0 )
{
  echo "No files in folder!"
  exit 1;
}
echo "We're good"
 
Vielleicht kannst du ja mein Batch-Skript von hier Bild mit Powershel kopieren und umbenennen
anpassen

Vielleicht so:
Bash:
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
set dt=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
@echo %dt%
Set SourceFiles=c:\Temp\Ein Ordner\%dt%
@echo %SourceFiles%
For %%A in (%SourceFiles%*.*) Do (
Set InFile=%%~nA
Set Extension=%%~xA
Set OutFile=!InFile!!Extension!
@echo !OutFile!
IF NOT EXIST !OutFile! SendMailFromPowerShell
EXIT
)

Achtung: SourceFiles is so gewählt, dass diese Batch-Datei im Ordnerbaum direkt über den "YYYY-MM-DD"-Ordnern sitzt.
Ansonsten einen absoluten Pfad angeben.
Set SourceFiles=c:\Temp\Ein Ordner\%dt%

Und suchen tut das Skript nach beliebiger Datei-Erweiterung.
Also falls as Jpgs sind, dann
For %%A in (%SourceFiles%*.jpg) Do (
 
Zuletzt bearbeitet:
Lösung
Hallo zusammen,
erst mal VIELEN DANK! für Eure superschnelle Hilfe!

@Endurion
Dein Script läuft perfekt. Hab gleich meine anderen Versuche gelöscht. :). Damit sind auch alle 3 Möglichkeiten ("Ordner fehlt" , "Alles OK" und "Ordner leer" ) abgedeckt.

@ Zvoni
Auch Dir vielen Dank für das Script!


VG
Franz
 
Zurück