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, 5140 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 ..
Ähnliche Inhalte
Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (10)

Frage von Bernulf zum Thema Verschlüsselung & Zertifikate ...

Internet Domänen
Nameserver ein Geist? (7)

Frage von zelamedia zum Thema Internet Domänen ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...