ralf82
Goto Top

Datei wird nicht gefunden

Hallo alle zusammen

ich setzte in einer Batch-Datei den Namen einer Datei zusammen, um diese später zu öffnen.

Set aip=agent.aip-server.wincc-agent.%jahr%%monat%%tag%.log

Wenn ich mir den Namen mit echo %aip% anzeigen lasse, passt alles. Verwende ich die Variable mit dem Namen später wird mit angezeigt, dass die Datei nicht gefunden werden kann. Die Datei existiert wirklich. Trage ich in AIP den Namen direkt ein, funktioniert es auch nicht.

FOR /F "delims=" %%A IN (%aip%) DO SET /A "Counter+1"  

1

Die Batch-Datei wird auf einem Server Betriebssystem Windows Server 2012 R2 ausgeführt.

Kann sich da jemand einen Reim draus machen?

Vielen Dank für eure Unterstützung.

Gruß Ralf

Content-Key: 2882997673

Url: https://administrator.de/contentid/2882997673

Ausgedruckt am: 19.03.2024 um 03:03 Uhr

Mitglied: colinardo
colinardo 24.05.2022 aktualisiert um 12:14:28 Uhr
Goto Top
Servus Ralf.
Kann sich da jemand einen Reim draus machen?
Ja, befindest du dich im richtigen Verzeichnis? Stelle sicher das du dich im richtigen Verzeichnis befindest oder verwende gleich absolute Pfadangaben und nicht nur einen Dateinamen ohne Pfad.
Für eine Log-Datei im Verzeichnis der Batch bspw. so
set "aip=%~dp0agent.aip-server.wincc-agent.%jahr%%monat%%tag%.log"  
for /F "usebackq delims=" %%A IN ("%aip%") do set /a counter+=1  

Grüße Uwe
Mitglied: Ralf82
Ralf82 24.05.2022 um 12:24:16 Uhr
Goto Top
Moin Uwe,

vielen Dank für deine Hilfe. Leider funktioniert das so auch nicht. Ich habe allerdings meine erste Version auf einen normalen Desktop PC getestet. Da funtzt das einwandfrei.

Die Batch- und Log-Datei sind auch im gleichen Verzeichnis.

Gruß Ralf
Mitglied: colinardo
colinardo 24.05.2022 aktualisiert um 12:48:52 Uhr
Goto Top
Ohne die komplette Batch wird das hier zum Ratespiel. Wenn die Shell sagt das es die Datei nicht gibt dann gibt es sie dort auch nicht oder es fehlen Zugriffsrechte.
Aufpassen musst du wenn du die Batch mit explizit mit Adminrechten ausführst, dann ist das aktuelle Arbeitsverzeichnis in der Regel "C:\Windows\system32" und nicht mehr das der Batch deswegen mein Einwand oben mit der Angabe von absoluten Pfaden bzw. mittels Ermittlung über die aktuelle Position der Batch mittels %~dp0.
Also lass dir einfach das aktuelle Arbeitsverzeichnis im Skript ausgeben dann siehst du was Sache ist!

p.s. das
SET /A "Counter+1"
ist sinnfrei. Das muss wenn dann
set /a counter+=1
lauten.

Ich habe allerdings meine erste Version auf einen normalen Desktop PC getestet. Da funtzt das einwandfrei.
Ein Server ist eben kein Desktop. Mit mehr Details zur Umgebung und Pfade und vor allem der komplette Inhalt deiner Batch können wir effektiver weiterhelfen. "geht einwandfrei" bringt uns hier leider nicht weiter. Danke für dein Verständnis.
Mitglied: Ralf82
Ralf82 24.05.2022 um 14:35:47 Uhr
Goto Top
Moin Uwe,

ich habe alles nochmal getestet. Zum Schluss habe ich das Skript und die Logfile in ein Verzeichnis kopiert, bei dem ich mir sicher bin, dass ich volle Berechtigung habe. Da funktioniert alles wie ich es möchte.

Ich schließe jetzt darauf, dass es eher etwas mit den Berechtigungen zu tun hat.

Vielen Dank für deine Hilfe.
Mitglied: Pjordorf
Pjordorf 24.05.2022 aktualisiert um 14:50:16 Uhr
Goto Top
Hallo,

Zitat von @Ralf82:
Ich schließe jetzt darauf, dass es eher etwas mit den Berechtigungen zu tun hat.
Das schreibt aber das OS normalerweise auf den Monitor, sofern du natürlich kein "@Echo Off" in deine Batch verewigt hast oder Fehler umleitest. Also lese und Verstehe was deine Batch dir mitteilt.

Gruß,
Peter
Mitglied: Ralf82
Lösung Ralf82 29.06.2022 um 16:08:34 Uhr
Goto Top
Moin,

Fehler gefunden. Das Problem lag an der Einbindung im Aufgabenplaner. Ich hatte die Datei zum Ausführen ausgewählt. Ich musste im Aufgabenplaner aber angeben, dass die Datei mit cmd.exe ausgeführt werden soll.