Ich versuche, ein Skript zu schreiben, um einen Ordner zu öffnen, bei dem der Name des Ordners zur Hälfte im Namen eine eindeutige Kennung enthält.
Der Ordner ist ein Unterordner eines Ordners, der vom Benutzer zusammen mit der eindeutigen Kennung in einem Dialogfeld definiert wird.
::result = Dialog (
v-Liste ( „Jahr 20XX“, Jahr=Text bearbeiten ( „17“,Breite ( 100 ))) ,
v-Liste ( „Bezeichner“, iden=Text bearbeiten ( „AA1211“,Breite ( 100 )))
) ;
Die Namen aller Unterordner haben die gleiche Struktur ABC-Jahr-ID-xxxx bbb ddddd FFF.
ABC steht fest. Jahr und ID werden vom Benutzer ausgewählt, xbd F sind jedoch Variablen.
Ich habe versucht, den Dateinamen mit „pick file“ zu ermitteln, aber es funktioniert nicht, da das letzte Bit davon variabel ist.
Ordnername = Datei auswählen ( „\\Ordner auswählen“, „C:\Benutzer\20“||::result [ "Jahr" ] ||"\"||"ABC-"||::result [ "Jahr" ] ||"-"||::result [ „ident“ ] ||"-*" ) ;
Eine andere Möglichkeit besteht darin, die Namen der Unterordner im Hauptordner zu lesen und zu versuchen, sie abzugleichen, aber ich kann es mit Regex nicht herausfinden.
files = Dateien im Verzeichnis ( "C:\Benutzer\20"||::result [ "Jahr" ] ) ;
Die Idee ist, sobald ich diesen Ordnerpfadnamen habe, eine Datei in diesem Ordner mit demselben Namen wie der Unterordner zu öffnen. Dafür habe ich das Skript, suche aber nur nach einer Möglichkeit, den Unterordnerpfad und den Dateinamen zu identifizieren.
Könnte mir jemand helfen?
Danke,
SC
Verwenden Sie möglicherweise Pick Directory() oder deklarieren Sie es im Voraus und verwenden Sie Folgendes
RootFolder = "C:/" ; // or Pick Directory()
Year = 2005 ;
SearchTerm = RootFolder || Char(Year) ;
Vielen Dank. Ich sehe jetzt, wie ich den Namen bekomme, aber wie kann ich den Pfad des Ordners herausfinden?
@SC1 ,
RootFolder = "C:\"; // Please fill in your desired folder location
FileList = Files In Directory(RootFolder); // Extract list of all files
DesList = list(); // Declare empty list
UserInput = 2005 ;
for(i = 1, i <= N Items(FileList), i++,
If(!IsMissing(Regex(Char(FileList[i]),Concat(Char(UserInput),"-","ABC|FFF")),
Insert Into(DesList,FileList[i]);
);
);
// This will be able to capture all files which are of the format 2005-ABC or 2005-FFF . You can expand on the or clause based on your need