Hallo pl,
ich präzisiere: Vielleicht ist das working directory von findstr nicht das Verzeichnis, in dem sich die Textdatei befindet.
findstr.exe
gehört zu den Kommandozeilenprogrammen die normalerweise in \windows\system32 abgelegt sind. Es ist nicht Sinn und Zweck von Kommandozeilenprogrammen, diese jedesmal in eine working directory zu kopieren. Vielmehr gibt es dafür eine UmgebungsvariablePATH
die es ermöglicht, ein Kommandozeilenprogramm in dem Verzeichnis aufzurufen, in dem es gerade gebraucht wird.
Und genau dieses Verzeichnis, in dem es gerade gebraucht wird, heißt working directory. Das Programm kann dieses mit Hilfe seiner Standardbibliothek ermitteln, z.B. pwd
in der Unix-Shell, getcwd
in C, mittels der Umgebungsvariablen %CD%
unter Windows, mit dem Perl-Modul Cwd
, …
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.
Viele Grüße
Robert