Unterstützung für Button gesucht

Aktuelle Version: 12.26 (02.12.2021)
Alles zum Thema Directory Opus
Antworten
dp_fan
Beiträge: 31
Registriert: 9. Feb 2006 08:33
Betriebssystem: Windows10Pro

Unterstützung für Button gesucht

Beitrag von dp_fan »

Hallo,
ich möchte gern einen Button erstellen der folgendes macht:

Ich klicke auf einen Ordner....
1: Kopiere alle Filenamen in diesen Ordner ohne Pfad in das Clipboard
2: Erstelle ein .txt file mit dem Namen des Ordners zuzüglich mit dem Datum von heute
3: Kopiere die Informationen aus dem Clipboard in das neue .txt file, speicher es ab und schließe es.

Ich habe mir die Hilfe und einge Button angeschaut und bin ersteinmal soweit gekommen:

1: Select ALL
Clipboard COPYNAMES=nopaths
2:
FileType NEW=.txt NEWNAME="{sourcepath$|nopath|noterm} {DATE|yyyy.MM.dd} .txt"

Das Textfile wird erstellt und in das Clipboard wurde auch alles hineinkopiert - soweit so gut.

Ich kann nun händisch das Textfile öffnen und aus dem Clipboard alles ins Textfile hineinkopieren und abspeichern ...also irgendwie geht es schon - aber nicht praktisch.

Folgende Fragen habe ich:

Geht mein Wunsch überhaupt umzusetzen?

Ich kann das auch mit 2 Button erledigen . kein Problem, nur
Wenn ich über einen Button ein neues Textfile erstelle, wie gelingt es mir das sich dieses, nachdem es einen Namen bekommen hat, sich gleich öffnet? Ich finde einfach den Befehl dafür nicht. Es wäre schon sehr bequem, nicht das neu erstellte Textfile wieder doppelklicken zu müssen....

Vielen Dank für jede Unterstützung im Vorraus!
Benutzeravatar
tbone
Berater
Beiträge: 626
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64

Re: Unterstützung für Button gesucht

Beitrag von tbone »

Erstmal, hast Du soweit gut gedacht und selber probiert.. jetzt ein Aber.. o)

DO-Buttons sind schön und gut, aber nicht immer der Beste Ansatz. Es gibt ja auch noch Betriebssystem-"Sachen".. Befehle, Commandline, Scripte, Powershell etc.. Alle wären für Deinen Fall vermutlich besser geeignet als es über einen reinen DO-Button mit nur DO-internen Befehlen zu versuchen.
Ein DO-Script wäre auch einfacher bzw. stabiler, aber da Dein Vorhaben im Grunde eine ganz rudimentäre Sache ist, die so gut wie jeder Admin auf jedem Betriebssystem so oder ähnlich schonmal ausführen musste, lässt sich das einfach und schnell über ganz herkömmliche Windows bzw. Commandline Bordmittel erledigen:

Wir können z.B. einfach den "dir" Befehl aus der Kommandozeile nehmen um nur Dateien zu listen und diese Liste in eine neue Datei zu schreiben, eingepackt als DO-Button könnte das so aussehen:

Code: Alles auswählen

@externalonly 
set CONTENT_FULLPATH={DATE|yyyy_MM_dd}_{sourcepath$|nopath|noterm}.txt
echo CONTENT_FULLPATH [%CONTENT_FULLPATH%]
dir /B /ON /A-D {sourcepath$} >"%CONTENT_FULLPATH%"
start notepad.exe "%CONTENT_FULLPATH%"
Wenn Du diese Kommandozeilen in eine Batch-Datei einträgst und nur die Batch von DOpus aus startest und mit Parametern versiehst, kannst Du die Funktionalität auch anderswo benutzen (in einem anderen Dateimanager oder auf der Kommandozeile z.B.). Das machen wir hier jetzt nicht, die Befehle leben in einem DO-Button und sind von außen nicht zu starten, aber das mal generell als Inspiration. o)

Hier der ganze Button zum Copy&Pasten auf eine Toolbar:

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="none" display="label" textcol="none">
	<label>Batch-Test ListFolder</label>
	<icon1>#newcommand</icon1>
	<function type="batch">
		<instruction>@externalonly </instruction>
		<instruction>set CONTENT_FULLPATH={DATE|yyyy_MM_dd}_{sourcepath$|nopath|noterm}.txt</instruction>
		<instruction>echo CONTENT_FULLPATH [%CONTENT_FULLPATH%]</instruction>
		<instruction>dir /B /ON /A-D {sourcepath$} &gt;&quot;%CONTENT_FULLPATH%&quot;</instruction>
		<instruction>start notepad.exe &quot;%CONTENT_FULLPATH%&quot;</instruction>
	</function>
</button>
Benutzeravatar
tbone
Berater
Beiträge: 626
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64

Re: Unterstützung für Button gesucht

Beitrag von tbone »

Nachbesserung, funktioniert jetzt besser mit Netzwerkpfaden ala "\\myserver\meinefreigabe\folderabc":

Code: Alles auswählen

@externalonly 
@nofilenamequoting 
set "CONTENT_FULLPATH={sourcepath$}\{DATE|yyyy_MM_dd}_{sourcepath$|nopath|noterm}.txt"
echo CONTENT_FULLPATH [%CONTENT_FULLPATH%]
dir /B /ON /A-D "{sourcepath$}" >"%CONTENT_FULLPATH%"
start notepad.exe "%CONTENT_FULLPATH%"
dp_fan
Beiträge: 31
Registriert: 9. Feb 2006 08:33
Betriebssystem: Windows10Pro

Re: Unterstützung für Button gesucht

Beitrag von dp_fan »

Hallo tbone,

vielen Dank für Deine Unterstützung !

Uff...das mit dem Code geht über mein äußerst bescheidenes Wissen weit drüber hinaus.....

Ich habe die "Nachbesserung" von Dir ausprobiert - leider bekomme ich eine Fehlermeldung:

"set" konnte nicht gefunden werden. Stellen Sie sicher, dass Sie den Namen richtig eingegeben haben und wiederholen Sie den Vorgang"

Hm....

(Ich verwende DO Vers. 12.25 x64, Build 7942)
Benutzeravatar
tbone
Berater
Beiträge: 626
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64

Re: Unterstützung für Button gesucht

Beitrag von tbone »

Mhh, da hast Du vermutlich irgendeine Zeile vergessen oder Dein Button hat nicht den richtigen Typ.
Kopier' den XML-Schnippsel hier ins Clipboard und paste diesen auf eine Toolbar, während Du im "Customize"-Modus bist.
Das sollte dann keine Fehlermeldung mehr geben.

Code: Alles auswählen

<?xml version="1.0"?>
<button backcol="none" display="label" textcol="none">
	<label>Batch-Test ListFolder</label>
	<icon1>#newcommand</icon1>
	<function type="batch">
		<instruction>@externalonly </instruction>
		<instruction>@nofilenamequoting </instruction>
		<instruction>set &quot;CONTENT_FULLPATH={sourcepath$}\{DATE|yyyy_MM_dd}_{sourcepath$|nopath|noterm}.txt&quot;</instruction>
		<instruction>echo CONTENT_FULLPATH [%CONTENT_FULLPATH%]</instruction>
		<instruction>dir /B /ON /A-D &quot;{sourcepath$}&quot; &gt;&quot;%CONTENT_FULLPATH%&quot;</instruction>
		<instruction>start notepad.exe &quot;%CONTENT_FULLPATH%&quot;</instruction>
	</function>
</button>
Benutzeravatar
tbone
Berater
Beiträge: 626
Registriert: 22. Nov 2014 21:16
Betriebssystem: 7*64

Re: Unterstützung für Button gesucht

Beitrag von tbone »

Das mit dem "Code" macht folgendes:

Code: Alles auswählen

@externalonly 
Ist ein DO-Modifier: Nur externe, keine DO Befehle ausführen/erwarten (siehe Doku "Modifier").
Brauchen wir, weil "Set" als Befehl benutzt wird und wir den DOS-Prompt "Set" wollen, nicht den, den DOpus anbietet, der leider auch "Set" heisst, aber ganz andere Sachen macht.

Code: Alles auswählen

@nofilenamequoting 
Ist ein DO-Modifier: DOpus soll kein automatisches Einpacken in Anführungszeichen von Pfaden vornehmen (siehe Doku "Modifier").

Code: Alles auswählen

set "CONTENT_FULLPATH={sourcepath$}\{DATE|yyyy_MM_dd}_{sourcepath$|nopath|noterm}.txt"
Ist ein normaler "Set" Befehl aus der Kommandozeile von Windows, setzt die Umgebungsvariable "CONTENT_FULLPATH" auf den vollen Pfad der Datei, die den Folder-Inhalt aufnehmen soll. Funktioniert weil DO vor Ausführung der Befehle, bzw. der dadurch entstehenden temporären Batch-Datei, die Variablen einsetzt. Guck mal C:\Windows\Temp.. da siehst Du irgendwo die Temporären Dateien die durch DO entstehen, da steht die Batch-Datei dann mit ausgefüllten DOpus-Platzhaltern (also statt {sourcepath$} steht dann dort D:\Test\MeinFolder z.B.).

Code: Alles auswählen

echo CONTENT_FULLPATH [%CONTENT_FULLPATH%]
Ist ein normaler "Echo" Befehl aus der Kommandozeile von Windows, gibt hier den Wert der Variable CONTENT_FULLPATH im Fenster aus (zur Kontrolle)

Code: Alles auswählen

dir /B /ON /A-D "{sourcepath$}" >"%CONTENT_FULLPATH%"
Ist ein normaler "Dir" Befehl aus der Kommandozeile von Windows, listet den Folderinhalt (mit ein paar Schaltern "Nur Dateien, alphabetisch" und leitet die Ausgabe in die Datei um, deren Pfad in der Variable CONTENT_FULLPATH zuvor abgelegt wurde.

Code: Alles auswählen

start notepad.exe "%CONTENT_FULLPATH%"
Ist der normale "Start" Befehl von Windows, startet Notepad aynchron (asynchron bedeutet, es blockiert nicht die Abfolge der Befehle, die Batch bzw. der DO-Button wartet nicht auf Beendigung von Notepad (somit schließt das öffnende DOS-Fenster automatisch und der Vorgang ist für DO erledigt, Notepad bleibt jedoch offen).

Man muss hier wissen wie diese DO-Buttons und verschiedenen Variablen, zu welcher Zeit gefüllt werden, dann ist es ganz easy.
Die {...$} Variablen sind ja von DO, die löst DOpus zuerst auf, bzw. fügt deren Werte ein, die Variable %CONTENT_FULLPATH% setzen wir "danach" im Batch-Kontext, diese wird dann nur noch von dem Kommandozeilen-Interpreter von Windows aufgelöst bzw. deren Wert an entsprechender Stelle eingefügt.

So, damit ist der kleine IT-Kurs für heute beendet. o)
dp_fan
Beiträge: 31
Registriert: 9. Feb 2006 08:33
Betriebssystem: Windows10Pro

Re: Unterstützung für Button gesucht

Beitrag von dp_fan »

Hi tbone,

ist ja verrückt...ich hatte bestimmt 3x den Teil kopiert und getestet....

Jetzt, mit dem "XML-Schnippsel " funktioniert es wunderbar!

Vielen Dank!


Auch danke für die jeweilgen Erklärungen der einzelnen Befehle und die Zeit die Du investiert hast!

Ich hoffe nur, dass das Forum nicht schließen wird - dann bin ich aufgeschmissen. Die Nachricht von Nobmen besorgt mich !
Antworten