Tach!
Das Programm kann dieses [working directory] mit Hilfe seiner Standardbibliothek ermitteln, z.B.
pwd
in der Unix-Shell,getcwd
in C, mittels der Umgebungsvariablen%CD%
unter Windows, mit dem Perl-ModulCwd
, …
Muss es eigentlich nicht, denn wenn man die Dateinamen ohne Pfad angibt, dann greift die Betriebssystemfunktion zu Öffnen der Datei bereits von selbst ins Working Directory, also in das aktuelle Verzeichnis.
In einer Batch~Datei sollte man Kommandozeilenprogramme stets mit der vollständigen PFadangabe notieren. Das gilt übrigens auch für die crontab~Datei unter Linux & CO.
Ja, weil man sich nicht auf den
$PATH
verlassen kann.
Unter Windows ist das erfahrungsgemäß weniger kritisch als unter Unix. Bei Unix wird oftmals der Pfad drastisch beschnitten, beziehungswiese gleich gar nicht so umfangreich aufgebaut wie in der Shell des Anwenders. Bei Windows hingegen weiß man üblicherweise nicht mal, wo sich die Programmdatei befindet, wenn es um einen System-Befehl gehört. Die üblichen verdächtigen Windowsverzeichnisse sollten also gesetzt sein.
Für den vorliegenden Fall wäre sonst auch die Meldung, dass findstr nicht gefunden werden konnte, wenn der PATH ein Problem darstellen sollte.
dedlfix.