Von PowerShell zu AppleScript?

REXX gab es aber auch auf den Host-Systemen :D

@wegus - ja was die Unterschiede angeht hast Du natürlich recht. Ich bin kein Programmierer im klassischen Sinne, nach X Tagen/ Wochen einer Einarbeitung komme ich bis jetzt mit jeder Scriptsprache die ich bis jetzt nutzen musste/wollte, klar.
Wenn ich wieder einen Mac kaufe, wird es nicht unbedingt einfacher, Sonst in meinem Homenetzwerk habe ich zwar viel virtuell laufen. Auf Linux KVM Basis, laufen Win 2019 Ad Controller, weil alle Workstations Windows sind. Aber andere Rechner wieder Linux oder wie mein NAS mit FreeBAS
Da merke ich schon immer wieder, dass es immer wieder Situationen gibt wo ich auf mein Script gucke und verstehe erst mal nicht warum es nicht so tut wie ich es will. Bis ich realisiert habe, dass gedanklich bei anderer Sprache war.

Das ist aber auch der Grund warum ich so viel Wert für mich auf Automatisierung lege. Ich bin nicht so der jüngste (Wenn Du REXX noch kennst, bist Du auch nicht :ROFLMAO: ) und weiß - wenn ein Script erst mal läuft und überschaubar gut dokumentiert ist, ist schon 90% erreicht. Im Fehlerfall, weil sich was extern verändert hat startet man nicht bei 0.
 
Da sind die Volumenames ja hardcoded.
@ObiTobi Ist das nicht der Wunsch? Dass in Abhängigkeit der gemounteten Karte( n) jeweils bereits festgelegte Aktionen stattfinden? Oder ist das dann für jede Karte das selbe … nur jeweils ein anderer Quellpfad?

Da könnte man dann z.B. Chronosync nutzen … das lässt wenn ein Datenträger gemountet wird, der einen Kopierjob zugeordnet ist sehr differenzierte Kopier-/Sync-Jobs zu.
 
Würde auch per ShellScript gehen.

Da die Karten eine feste Benennung haben kann man den Namen auslesen.

(Das muss jetzt nicht die korrekte Syntax sein, hab keine Shell vor mir)

Code:
userpfad="/meinPfad"
myvolume="$(ls /volumes/EOSR6*)"
mkdir -p "/$userpfad/$myvolume/"
cp "$myvolume" "/$userpfad/$myvolume/"

nur so als Denkansatz, wie geschrieben, die Syntax wird nicht korrekt sein und bei cp wird man noch rekursiv durch die Pfade gehen oder einen bestimmten Pfad angeben.

Der Vierzeiler legt korrekt angepasst in dem Pfad einen Ordner mit dem Namen des Volumes (Speicherkarte) an und kopiert den Inhalt. Die Karte muss nur den gleichen Namensanfang haben.

edit: einmal schnell durch shellcheck gegangen ;-)
 
Zuletzt bearbeitet:
Was an Digitale Bilder "so etwas" ist hab ich nicht verstanden. Das Programm geht einfach auf, wenn eine SD- oder andere Karte im Mac steckt und man kann dem Import eine eigene Aktion anhängen, die genau das macht, was Du definiert hast. Ich kann weder gut Programmieren noch kenne ich mich mit Computern aus, habe aber trotzdem einige Bash Skripte für den Mac und Linux geschrieben, die ganz prima auch an schlechten Tagen immer funktionieren. Punkt 1 beim Programmieren ist meiner Meinung nach, auf Deutsch mal hinschreiben, was denn überhaupt passieren soll, da hat man später dann auch schon direkt die Kommentare im Code. :)
 
Das ist der zentrale Punkt warum ich mir auch immer kleine Scripte baue, gerade wenn's auch mal schief gehen kann. Die funktionieren auch wenn ich abgelenkt bin oder im Stress.
 
Doppelpost gelöscht
 
Ist das nicht der Wunsch? Dass in Abhängigkeit der gemounteten Karte( n) jeweils bereits festgelegte Aktionen stattfinden?
Ja ist es.
Es macht keinen Sinn mein altes AppleScript zu posten, weil es eben alt und mit heutigen Stand nicht so viel gemeinsam hat. Es macht auch wenig Sinn hier mein aktuelles PowerShell zu posten. Ich versuche es also zu Erklären wie der Ablauf an diesem Punkt ist.

Ich habe 3 Kameras

1. "EOS R5"
2."EOS R6 Mark II"
3. "EOS R7"

Für jede Kamera habe ich immer 4 Speicherkarten die immer den Namen der Kamera und laufende Nummer tragen
z.B
"EOSR5-002" oder "EOSR6II-003"

Dann (hier überspringe ich einige Sachen die für den Moment nicht so wichtig sind) liegen die Bilder immer in

C:\DSLR\DSLR-RAW\KameraName\Jahr\Monat\Tag

Somit wenn die Speicherkarte "EOSR6II-003" gefunden wird, werden alle Bilder von der Speicherkarte nach

C.\DSLR\DSLR-RAW\EOS R6 Mark II\2023\06\01 kopiert
 
  • Gefällt mir
Reaktionen: mausfang
Was an Digitale Bilder "so etwas" ist hab ich nicht verstanden.
Das ist relativ einfach zu erklären - ich bin mit keinem OS verheiratet. Das heißt möglich viel/ (alles was Sinn macht) was ich mache versuche ich auf Tools die das OS hat zu verzichten, damit ich bei einem Wechsel nicht zusätzliche "Aufgaben" habe.
Das soll nicht heißen, dass "Digitale Bilder" schlecht ist oder so. Das was ich mache, können auch zumindest einige der Programme die ich nutze. Das Problem dabei - in den über 30 Jahren war ich zum Teil gezwungen die Software zu wechseln (Aperture). Und das heißt wieder das Rad neu erfinden.. Das mag ich nicht, besonders dann nicht wenn es nicht notwendig ist.
 
Digitale Bilder macht nur den Import. Keine Datenbank oder Bearbeitung.
 
  • Gefällt mir
Reaktionen: dg2rbf
@ObiTobi

Also ich hab auf meinem MacBook die Powershell installiert … und ein simples „ls“ in /Volumes bringt alle Drives die gemountet sind … Du iterierst dann einfach über das Ergebnis … wenn Du schon ein für Windows funktionierendes Powershell hast, dann brauchst Du doch nur die Funktion / Subroutine ändern, in der Du windowsspezifisch die Laufwerke ermittelst mit einem „ls“ im /Volumes … und bei der Fallunterscheidung oder dem „Bauen des Zielpfads“ einfach den korrekten Unixpfad zusammenbauen … klingt für mich nach ner lösbaren Aufgabe …
 
  • Gefällt mir
Reaktionen: ObiTobi
Ein weiterer Weg die Powershell zu nutzen ist es natürlich auch eine Windows VM zu verwenden und Ordner dort als Laufwerke zu mounten. Das ist - nur für die Shell - natürlich Overkill. Fällt mir aber gerade auf, weil ich für Testzwecke hier gerade eine Win11 VM mit Shell nutzen muß. Wenn das also eh nötig sein sollte eine solche VM zu haben, hindert Dich niemand an einer vollwertigen Powershell für den Mac.
 
und Ordner dort als Laufwerke zu mounten.
Das ist halb so wild bei mir. Ich habe die Sachen so realisiert bei mir, dass ich zumindest lokal nur ein Laufwerkbuchstabe habe "C:" Alle anderen Platten und Speicherkarten werden in Verzeichnisse gemounted. So gesehen muss ich mir den Vorschlag von @mausfang ganz genau anschauen und gucken. was ich so ändern musste.
natürlich auch eine Windows VM zu verwenden
Das wurde glaube ich gar nicht funktionieren. Also mein Script komplett ohne Änderungen so nutzen können.
Es gibt da z.B eine Stelle mit der ich eine virtuelle Platte erstelle. Die Snap-Ins sind nur mit Hyper-V vorhanden, sonst muss man so etwas "von Hinten durch...."
 
  • Gefällt mir
Reaktionen: mausfang
Wüsste auch gar nicht was das Powershell über VM nutzen bringen soll.
Wenn man ein Script für Powershell schreiben kann, sollte es auch in anderen Scriptsprachen gehen.
Das Prozedere ist doch dasselbe: Befehle nachgucken, Kontrollstrukten einfügen.
 
  • Gefällt mir
Reaktionen: mausfang und wegus
Wüsste auch gar nicht was das Powershell über VM nutzen bringen soll.
Wenn man ein Script für Powershell schreiben kann, sollte es auch in anderen Scriptsprachen gehen.
Das Prozedere ist doch dasselbe: Befehle nachgucken, Kontrollstrukten einfügen.
Vor Allem weil die Laufwerksnamen und Pfade hart kodiert sind sollte das eine Kleinigkeit sein.

Schöne Gelegenheit sich in die Mac / BSD / Linux / Unix Interna einzuarbeiten.
 
Wüsste auch gar nicht was das Powershell über VM nutzen bringen soll.
Wenn man ein Script für Powershell schreiben kann, sollte es auch in anderen Scriptsprachen gehen.
Das Prozedere ist doch dasselbe: Befehle nachgucken, Kontrollstrukten einfügen.
nur wenns um das reine Powershell haben wollen ginge. Logischerweise geht das auch alles mit der zsh.
 
Ich hatte kurz Zeit das Shell Script was ich #23 phantasiert habe zu realisieren:

Bash:
#!/bin/sh
userpfad="/users/mein_username/downloads"
myvolume="$(ls /volumes/ | grep EOSR)"

mkdir -p "$userpfad/$myvolume/"

cp -rv "/volumes/$myvolume" "$userpfad/"

-r in cp ist rekursiv, geht also durch die Pfade
-v in cp ist verbose, zeigt jede Datei an
 
  • Gefällt mir
Reaktionen: mausfang
-r in cp ist rekursiv, geht also durch die Pfade
-v in cp ist verbose, zeigt jede Datei an
Ich weiß was für Argumente cp kennt. ich dachte ich habe deutlich gemacht, dass ich mit den Sachen so weit ganz gut klar komme, daher...
Ich mache jetzt erst mal "Pause" und warte den Montag ab und entscheide dann ob es doch ein Mac wird oder ich doch weiter ein Windows Laptop kaufen werde.

Wenn man ein Script für Powershell schreiben kann, sollte es auch in anderen Scriptsprachen gehen.
Richtig.
 
Ich weiß was für Argumente cp kennt.
Es geht, wie immer, auch um interessierte Mitlesende. Das ist ein interessantes Thema, sonst hätte ich nicht darauf geantwortet.

Davon abgesehen können die CLI Tools auch vom Funktionsumfang und auch der Syntax immer abweichen.

Das Standardkommando "echo" kennt zum Beispiel kein -n um keinen Zeilenumbruch zu machen bei der Version die mit MacOs mitkommt. Auch grep ist nicht völlig gleich wie in anderen Systemen.

Vielleicht interessant:
https://www.computerweekly.com/de/tipp/PowerShell-vs-Bash-unter-Windows-Ein-Vergleich#:~:text=PowerShell%20wird%20am%20häufigsten%20für,traditionell%20eher%20für%20Entwicklungsumgebungen%20geeignet.
 
  • Gefällt mir
Reaktionen: ruerueka und mausfang
Moin,
ich habe die Tage zwischendurch sehr viele Videos und Vergleiche geschaut um zu entscheiden ob ich wieder ein Windows oder doch Mac Laptop kaufe.
Nicht zuletzt auf Grund der enormen Preisunterschied habe ich mich vorerst für Windows entschieden. Das entsprechende Gerät werde ich in den nächsten Tagen bestellen und gucken ob es bleiben darf. Wenn nicht, dann kommt im Oktober doch das unverschämt teure MBP.

Das Skript um welches es hier ging, habe ich dennoch angefangen ganz langsam von PowerShell ins Bash zu überführen. In erster Linie gehe ich mein PowerShell 1:1 durch und ändere Sachen nach Bash.
Wenn das irgendwann fertig ist und auch funktioniert, wird es sicherlich keine Auszeichnung verdient haben. Wenn ich dann aber doch bei Mac gelandet sein sollte, stelle ich es hier zur Verfügung. Der eine oder andere wird sicherlich auch gute Idee haben wie man es "schöner/ besser/ bunter" machen kann.
Danke erst mal für die Antworten.
 
  • Gefällt mir
Reaktionen: mausfang
  • Gefällt mir
Reaktionen: wegus und ObiTobi
Zurück
Oben Unten