Hallo!
Ich habe ein Batch Skript verfasst. Ich will einen Ordner auf Veränderungen überwachen. Wenn eine Datei verändert oder gelöscht wird, soll mein Rechner sofort ohne Umwege in den erweiterten Modus booten. Das Skript funktioniert, wenn ich nur eine einzelne Datei/Ordner überwachen will:
Das Skript funktioniert aber nicht, wenn ich den Ordnerinhalt, also alle im Ordner befindlichen Dateien überwachen will:
Wo liegt der Fehler?
Sind die Variablen richtig gesetzt?
Eine for Schleife wäre Quatsch, dann können ja keine Dateien gelöscht werden, weil dann alle Dateien in einer offenen Anwendung (PowerShell) laufen würden. Das hat wohl damit zu tun, dass eine for Schleife den gesamten Ordnerinhalt überwacht. Mir reicht es aber wenn PowerShell einfach nur Datei für Datei durchscannt (also goto Schleife).
Wer kann mir helfen?
Ich habe ein Batch Skript verfasst. Ich will einen Ordner auf Veränderungen überwachen. Wenn eine Datei verändert oder gelöscht wird, soll mein Rechner sofort ohne Umwege in den erweiterten Modus booten. Das Skript funktioniert, wenn ich nur eine einzelne Datei/Ordner überwachen will:
Code:
[USER=116181]@Echo[/USER] off
if exist "C:\Users\mhamb\Desktop\Photoalbum" (
echo Photoalbum ist noch vorhanden.
timeout /t 5
) else (
echo Photoalbum ist nicht mehr vorhanden.
timeout /t 5
exit /FolderGuard
)
[USER=116181]@Echo[/USER] off
: loop
[USER=116181]@Echo[/USER] off
if exist "C:\Users\mhamb\Desktop\Photoalbum" (
timeout /t 1
goto loop
) else (
shutdown /r /f /o /t 0
)
)
Das Skript funktioniert aber nicht, wenn ich den Ordnerinhalt, also alle im Ordner befindlichen Dateien überwachen will:
Code:
[USER=116181]@Echo[/USER] off
set Photoalbum=C:\Users\mhamb\Desktop\Photoalbum
set fine-art-of-history-gallery._=pic
if exist "Photoalbum\pic1" (
if exist "Photoalbum\pic2" (
if exist "Photoalbum\pic3" (
echo Alle Bilder sind noch vollständig vorhanden.
timeout /t 5
) else (
echo Es sind nicht mehr alle Bilder vollständig vorhanden.
timeout /t 5
exit /FolderGuard3
)
[USER=116181]@Echo[/USER] off
: loop
[USER=116181]@Echo[/USER] off
if exist "Photoalbum\pic1" (
if exist "Photoalbum\pic2" (
if exist "Photoalbum\pic3" (
timeout /t 1
goto loop
) else (
shutdown /r /f /o /t 0
)
)
Wo liegt der Fehler?
Sind die Variablen richtig gesetzt?
Eine for Schleife wäre Quatsch, dann können ja keine Dateien gelöscht werden, weil dann alle Dateien in einer offenen Anwendung (PowerShell) laufen würden. Das hat wohl damit zu tun, dass eine for Schleife den gesamten Ordnerinhalt überwacht. Mir reicht es aber wenn PowerShell einfach nur Datei für Datei durchscannt (also goto Schleife).
Wer kann mir helfen?
Zuletzt bearbeitet: