Ich möchte Scripten lernen?

Hilfe zu verschiedenen Themen
Antworten
Benutzeravatar
Maui
Beiträge: 50
Registriert: 3. Dez 2021 08:08
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Ich möchte Scripten lernen?

Beitrag von Maui »

Ich möchte nun anfangen in DO das Scripten lernen.
In DO wird VB und JScript unterstützt.
Ist JScript und JavaScript das gleiche?
Kann ich JavaScript lernen und es in DO verwenden?

Ich möchte ein Verzeichnis im Lister oder in der Ordnerstruktur auswählen und über einen Schalter ein Skript ablaufen lassen.
Zur Zeit habe ich den Befehlsinterpreter von DO offen und habe ein kleines Skript geschrieben welches das Selektierte Verzeichnis ausgeben soll.
Was aber leider noch nicht funktioniert?

Bin auf der HilfeSeite von DO und versuche schlau draus zu werden. :D

Code: Alles auswählen

function OnClick(clickData) 
{
    // Aktuelles Verzeichnis auswählen
    var currentPath = clickData.func.sourcetab.path;

    // Ausgabe des aktuellen Verzeichnisses
    DOpus.Output("Das aktuelle Verzeichnis ist: " + currentPath);
}
Kann mir jemand dabei helfen?
Danke
Benutzeravatar
Kundal
Moderator
Beiträge: 122
Registriert: 24. Okt 2021 18:02
Betriebssystem: Windows 10 Pro

Re: Ich möchte Scripten lernen?

Beitrag von Kundal »

Dein Script funktioniert doch. DOpus.Output gibt die Nachricht allerdings nur im Skript-Protokoll aus. Du erwartest vermutlich eine Message-Box. Dafür musst du einen kleinen Dialog erstellen, der nur einen OK-Button hat:

Code: Alles auswählen

function OnClick(clickData) 
{
    // Aktuelles Verzeichnis auswählen
    	var currentPath = clickData.func.sourcetab.path;
	
    // Ausgabe des aktuellen Verzeichnisses
	dlg = clickData.func.dlg
    	dlg.message = ("Das aktuelle Verzeichnis ist: " + currentPath);
	dlg.buttons = "OK";
	dlg.Show;
}
Benutzeravatar
Maui
Beiträge: 50
Registriert: 3. Dez 2021 08:08
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Ich möchte Scripten lernen?

Beitrag von Maui »

OK, soweit funktioniert es mit dem Schalter muss nur darauf achten JScript zu aktivieren.
Mit dem Befehlszeileninterpreter hat es nicht geklappt.

Jetzt versuche ich das aus zu bauen und Unterverzeichnisse fest zu stellen Unterverzeichnisse öndern und nach entsprechenden Inhalten in verschiedene Verzeichnisse einsortieren lassen.

Also das was ich schon mal mit Java Programmiert habe.
Zuletzt geändert von Maui am 10. Nov 2023 14:49, insgesamt 1-mal geändert.
Benutzeravatar
tbone
Supporter
Beiträge: 290
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Ich möchte Scripten lernen?

Beitrag von tbone »

Unterschied JScript vs. Javascript habe ich hier mal näher erklärt (lässt sich nicht eindeutig mit Ja/Nein beantworten):
https://resource.dopus.com/t/how-to-sta ... /6?u=tbone

Wenn Du mit dem Scripting so am Scripten bist, hier ist die Einstiegsseite zum Thema in den DO Docs:
https://www.gpsoft.com.au/help/opus12/i ... ipting.htm

Und bestenfalls diese Referenz zur Hand haben, ohne geht's kaum (Objects und Events):
https://www.gpsoft.com.au/help/opus12/i ... erence.htm

Und diese Referenz für Internal Commands, Argument-Types ist auch wichtig, um alles miteinander zu verbinden:
https://www.gpsoft.com.au/help/opus12/i ... erence.htm

ps: Für so einfache JScript-Übungen, kann man das DO "CLI" verwenden (auf JScript umschalten).
Aber einfacher ist meiner Meinung bestimmte Tests direkt in JScript als *.js Datei anzulegen und zu editieren im Editor Deiner Wahl.
Und dann "cscript.exe my_jscript.js" in der Konsole ausführen, oder den Editor so einrichten, dass er das Script laufen lässt und die Ausgabe direkt anzeigt (ist nur doof bei Endlosschleifen, wenn der Editor das Beenden des Script-Tasks nicht machen kann, dann musst Du den TaskManager nehmen).

In DO musst Du Ausgaben immer mit "DOpus.Output()" machen, im JScript ohne DO, nur rein Windows, da ist es "WSH.Echo()".
Benutzeravatar
Maui
Beiträge: 50
Registriert: 3. Dez 2021 08:08
Betriebssystem: Windows 10 Pro
DOpus Version: 13

Re: Ich möchte Scripten lernen?

Beitrag von Maui »

Vielen Dank.

Jetzt möchte ich im selektierten Verzeichnis nach Unterverzeichnisse suchen und diese automatisch umbenennen.
Leider habe ich das Problem das überhaupt keine Verzeichnisse erkannt werden. Zumindest denke ich das weil
die Anzahl der Verzeichnisse mit "undefines" ausgegeben werden.
Damit wird die Schleife auch nicht abgearbeitet.

Vielleicht sieht jemand das Problem?
Danke

Code: Alles auswählen

function OnClick(clickData) {
    var cmd = clickData.func.command;

    // Aktuelles Verzeichnis auswählen (Root-Verzeichnis)
    var rootPath = clickData.func.sourceTab.path;

    // Ausgabe des aktuellen Verzeichnisses
    DOpus.Output("Das aktuelle Verzeichnis ist: " + rootPath);

    // Verzeichnisse im Root-Verzeichnis auflisten
    var subDirs = DOpus.FSUtil.ReadDir(rootPath, true);
	DOpus.Output("Die Anzahl der Verzeichnisse sind: " + subDirs.count);

    // Schleife durch die gefundenen Verzeichnisse
    for (var i = 0; i < subDirs.count; i++) {
        var subDir = subDirs(i);
        var subDirName = subDir.name;

        // Debug-Ausgabe: Aktuelles Verzeichnis und Verzeichnisname
        DOpus.Output("Aktuelles Verzeichnis: " + rootPath);
        DOpus.Output("Verzeichnisname: " + subDirName);

        // Wenn das Verzeichnis "VorschauRendering" gefunden wurde, umbenennen in "render"
        if (subDirName === "VorschauRendering") {
            cmd.RunCommand('Rename TO="render" FILE "' + rootPath + "\\" + subDirName + '"');
            DOpus.Output("Das Verzeichnis 'VorschauRendering' wurde gefunden und in 'render' umbenannt.");
        }

        // Wenn das Verzeichnis "Maps" gefunden wurde, umbenennen in "texturen"
        if (subDirName === "Maps") {
            cmd.RunCommand('Rename TO="texturen" FILE "' + rootPath + "\\" + subDirName + '"');
            DOpus.Output("Das Verzeichnis 'Maps' wurde gefunden und in 'texturen' umbenannt.");
        }
		DOpus.Output("Umbenennung der Verzeichnisse abgeschlossen.");
    }

    // Meldung über abgeschlossene Umbenennungen
    DOpus.Output("Das Scriptende wurde erreicht");
}
Benutzeravatar
tbone
Supporter
Beiträge: 290
Registriert: 29. Okt 2021 00:45
Betriebssystem: Windows 10 Pro

Re: Ich möchte Scripten lernen?

Beitrag von tbone »

image.png
image.png (19.57 KiB) 885 mal betrachtet
Gibt es dort in der Reference ein Property "count" für FolderEnum?..
Antworten