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

Batchprogrammierung Überwachung einer Datei und Start von anderen Programmen

Frage Entwicklung Batch & Shell

Mitglied: idefixGR

idefixGR (Level 1) - Jetzt verbinden

30.03.2009, aktualisiert 02.04.2009, 5121 Aufrufe, 1 Kommentar

Batchprogrammierung: Überwachung von Dateien in Abhängigkeit davon:
Start von Programmen
Umbenennung von Dateien
Restart von umbenannten Programmen

Hallo alle zusammen ich bin Neuling bzgl. Batchprogrammierung und habe fogendes Anliegen/Problem:


Von einem Rechenprogramm wird ein Lock-file (*.lck) erstellt, solange das Programm noch aktiv ist. Neben diesem Lockfile werden
diverse Ergebnisdateien von dem Rechneprogramm erstellt. Ich habe
in C ein Auswertungsprogramm geschrieben, welches auf die Ergebnisfiles zugreifen kann und diese in von
mir erwuenschte Form umschreibt.
Das oben erwähnte Lock-file wird vom Rechenprogramm nach Beendigung der Rechnung wieder gelöscht


Ich moechte jetzt den Vorgang automatisieren und zwar per Batch-Programmierung. Das Rechenprogramm kann ich per call-Befehl starten.


Das Auswertungsprogramm soll jetzt automatisch starten, wenn die Rechnung beendet ist. Folgende Fragen habe ich deshalb:
1.)
Wie kann ich das Vorhandensein der .Lck-Datei überwachen, so dass ich nach dessen Löschung automatisch das Auswertungsprogramm starte?


Der Name der Ergebnisdatei ist bekannt, muesste aber wohl im Verlaufe der Bachtprogrammes diesem uebergeben werden.
2.)
Wie wuerde das z.B. per externer TXT-Datei funktionieren?

Das Rechenprogramm liest seine Daten von einer externen Datei ein (*.INP). Bei einem automatisierten restart ohne Namensänderung würden die alten Dateien überschrieben.
Um also z.B. mehrere Zyklen Rechnen zu können, ohne dass die alten Dateien verlorengehen, müssen diese vor dem Neustart umbenannt bzw. in eine andere Datei kopiert werden.

3.) Wie kann ich deshalb die Input-Dateien nach Beendigung des Auswertungsprogrammes kopieren, nach Möglichkeit mittels eines Zählindexes, also ALT.inp ==> ALT1.inp, so dass der zweite Rechenzyklus mit der Datei ALT1.inp gestartet wird?

Praktisch waere es, die Anzahl der Wiederholzyklen in dem Bachtfile ebenfalls zu hinterlegen bzw. extern einzulesen.

ciao IdefixGR

ZUSATZ: 02.04.2009:
Mit Teilloesungen waere mir auch schon geholfen.

ciao IdefixGR
Mitglied: erik87
10.04.2009 um 15:50 Uhr
hallo IdefixGR,

zu 1.

dies würde ich mit einer goto-schleife realisieren, die überprüfung der datei mit dem befehl "if exist"

@echo off
cls

set pfad="..pfad+dateiname+endung.."
:exist
if exist %pfad% goto run
goto exist
:run
start "C:\Dat\auswertungsprogramm.exe"


zu 2.

wenn du den name immer in der ersten zeile stehen hast liest du die datei mit einer for-schleife aus

for /f %%a in ("C:\test\name.txt") do set name=%%a



zu 3.

da sieht die sache schon etwas schwieriger aus. du musst quasi den namen einlesen, die letzten vier stellen trennen ne laufende nummer rein und dann wieder ran.. das könnte so aussehen:
angenommen die "inp"-datei liegt in c:\Dat\" dann wird sie so ausgelesen

set anz=1
for %%b in ("C:\Dat\*.inp") do (set tem=%%b) && (call namcut)

nun wir der pfad + dateiname in die variable tem geschrieben und wir können das für jede datei unter der sprungmarke
"namcut" bearbeiten
jetzt müssen wir die tem-variable vom ordnerpfad und der endung trennen. in meinem beispiel is der pfad "C:\DAT\" also 7 zeichen lang. dann muss noch ne laufnummer ran die in der variablen anz liegt und dazu wieder die endung.

:namcut
set datnam=%tem:~7,4%%anz%.inp

dann noch anz erhöhen und zum ende der datei mit "goto eof" springen.
das programm könnte dann folgendermaßen aussehen:

@echo off
cls

set anz=1
for %%b in ("C:\Dat\*.inp") do (set tem=%%b) && (call namcut)
goto weiter
:namcut
set datnam=%tem:~7,4%%anz%.inp
set /a anz=anz+1
goto :eof
:weiter



ich hoffe das hilft dir weiter. es schadet auch nicht mal die cmd zu starten und dort "if /?" und "for /?" einzugeben

mir iss grad noch nen kleiner fehler aufgefallen, habsch mal korrigiert... schönen samstag noch!
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...