Batch erst starten wenn bestimmte Datei vorhanden ist
Hi Jung,
in meiner batch wird eine .txt Datei bearbeitet.
Diese .txt ist aber nur bei einer bestimmten Ereignisauslösung vorhanden.
Jetzt wäre es super, wenn die batch so lange nach der Datei (im selben Ordner) sucht, bis diese vorhanden ist.
Danach sollte dann das restliche Script der batch durchlaufen.
U.a. wird die .txt umbenannt und verschoben.
Vielen Dank!!!
in meiner batch wird eine .txt Datei bearbeitet.
Diese .txt ist aber nur bei einer bestimmten Ereignisauslösung vorhanden.
Jetzt wäre es super, wenn die batch so lange nach der Datei (im selben Ordner) sucht, bis diese vorhanden ist.
Danach sollte dann das restliche Script der batch durchlaufen.
U.a. wird die .txt umbenannt und verschoben.
Vielen Dank!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 304653
Url: https://administrator.de/contentid/304653
Ausgedruckt am: 22.11.2024 um 16:11 Uhr
7 Kommentare
Neuester Kommentar
Ein IFEXIST hinein und dann eine Verzweigung
-> bei Nein: Warte eine Intervallzeit, dann beginne von vorn
-> bei Ja: Mache das was du sollsts und beginne von vorne
Alternativ:
-> bei Nein: beende
-> bei Ja: Mache was du sollst und beende
und sage dem Betriebssystem alle wieviel Minuten (Stunden, Tage, Jahre) das Progrämmchen gestartet werden soll.
-> bei Nein: Warte eine Intervallzeit, dann beginne von vorn
-> bei Ja: Mache das was du sollsts und beginne von vorne
Alternativ:
-> bei Nein: beende
-> bei Ja: Mache was du sollst und beende
und sage dem Betriebssystem alle wieviel Minuten (Stunden, Tage, Jahre) das Progrämmchen gestartet werden soll.
Und an dieses Ereignis knüpfst du einen geplanten Task an, der dein Batchscript startet. Fertig.
Grüße
rubberman
Nicht direkt, aber es ist eh recht einfach
:START
if not exist c:\ordner\datei.txt goto ende
Mache was du willst oder brauchst
:ENDE
timeout /t 600
goto start
http://www.its05.de/computerwissen-computerhilfe/programmierung/stapelv ...
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehle
:START
if not exist c:\ordner\datei.txt goto ende
Mache was du willst oder brauchst
:ENDE
timeout /t 600
goto start
http://www.its05.de/computerwissen-computerhilfe/programmierung/stapelv ...
https://de.wikibooks.org/wiki/Batch-Programmierung:_Batch-Befehle
Alternativ kannst du das Event der Dateierstellung per WMI abfangen. Batch - JScript Kombination:
*.bat
Grüße
rubberman
*.bat
@if (@a)==(@b) @end /*
@echo off &setlocal
REM Darauf warten, dass "test.txt" erstellt wird
cscript //nologo //e:jscript "%~fs0" "test.txt"
REM Mach was ...
echo Datei wurde erstellt.
pause
exit /b
*/
var colEvents = WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\\cimv2").ExecNotificationQuery(
"SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE TargetInstance ISA 'CIM_DirectoryContainsFile' " +
"AND TargetInstance.GroupComponent = 'Win32_Directory.Name=\"" +
WScript.CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName).replace(/\\/g, "\\\\\\\\") + "\"'");
while(true) {
var file = colEvents.NextEvent().TargetInstance.PartComponent.split(/[\"\\]/g).pop();
if (file.toLowerCase() == WScript.Arguments(0).toLowerCase()) {
WScript.Quit();
}
}
rubberman