Durch die Ordner in einem Verzeichnis blätternHallo zusammen,
Ich habe ein Skript, das mit einem Datensatz arbeitet, den ich von einer zyklisch ladenden Maschine erhalte. Ich erhalte jedoch Datenstapel von diesem Computer, die in Ordnern organisiert sind, die die TXT-Datei enthalten, auf der ich das Skript ausführen möchte. Gibt es eine Möglichkeit, die Skriptdatei in den übergeordneten Ordner einzufügen, der alle Unterordner enthält, die die TXT-Dateien enthalten, und sie durch jeden Ordner laufen zu lassen (indem ich die TXT-Dateien in den Ordnern öffne und das Skript für jede TXT-Datei ausführe)? Datei wie es geht)?
Ich habe das Skript jetzt so eingerichtet, dass es mithilfe von den aktuellen Dateipfad zurückgeben kann, in dem sich das Skript befindet, und jetzt muss ich (type out Geben Sie im Skript den Dateinamen ein, um die Datendatei zu öffnen.
Verwendung von JMP 17.
Dank im Voraus!
InhaltsorganisationBetreff: Durch Ordner in einem Verzeichnis blätternerweitern @Jed_Campbell Beispiel ein bisschen,
for each ({filename}, lstFiles,
//your script for each file
dt = filename; // it isn't really a name, it is a data table handle
... do something with this open data table that dt points to
close( dt, "nosave" ); // if you are done with it
);
Das Kopieren von Dateinamen nach dt dient nur dazu, klarzustellen, um welches Listenelement es sich handelt. Sie könnten dt<
Betreff: Durch Ordner in einem Verzeichnis blätternJed,
Scheint, als ob der Datenimport mehrerer Dateien funktioniert, ich kann jedoch die Funktion „Für jede“ nicht zum Laufen bringen. Anscheinend wird die Liste der mit dem Import mehrerer Dateien erstellten Dateien nicht durchlaufen. Ich erhalte von meinem Skript 33 Mal denselben Rückgabewert (33 ist die Anzahl der Elemente in der Dateiliste).
Betreff: Durch Ordner in einem Verzeichnis blätternDanke für die Tipps!
Betreff: Durch Ordner in einem Verzeichnis blätternDanke für die Antwort – werde es bald versuchen!
Betreff: Durch Ordner in einem Verzeichnis blätternUnd wenn MFI nicht das tut, was Sie brauchen, gibt FilesInDirectory(...) eine Liste von Dateien und Verzeichnissen zurück. Die Funktionen isFile() und isDirectory() sowie FileCreationDate() und FileModificationDate() können Ihnen dabei helfen, das zu bekommen, was Sie brauchen. (ungefähre Namen, überprüfen Sie den Skriptindex.) I denken FilesInDirectory tut es nicht Gibt Verzeichnisse zurück, wenn die rekursiv Option verwendet wird. Möglicherweise enthält die Liste Elemente, bei denen es sich nicht um Dateien oder Verzeichnisse handelt. Verwenden Sie daher den Test, der am sinnvollsten ist. Wenn MFI dies jedoch übernimmt, verfügen Sie über ein einfacheres JSL-Skript.
Betreff: Durch Ordner in einem Verzeichnis blätternDie Funktion „Multiple File Import()“ ist hierfür eine fantastische Abkürzung, da sie eine Liste von Dateien zurückgibt. Ich würde vorschlagen, zuerst den Import über die GUI durchzuführen und dann einfach das Skript zu kopieren und es bei Bedarf zu ändern. Pseudoskript unten:
m = Multiple File Import (lots of settings);
lstFiles = m << import data;
for each ({filename}, lstFiles,
//your script for each file
);