Prüfen Sie, ob eine Datei vorhanden ist, und verschieben Sie dann Alte Datei umbenennen und Neue

2

Folgendes versuche ich zu tun:

Ich habe einen Ordner, der ein Skript und eine Datei enthält. Die Datei ist eine ältere Kopie einer Datei, die sich in folgendem Pfad befindet: /System/Library/PrivateFrameworks/Apple80211.framework/Versions/A.

Ich versuche, ein AppleScript zu erstellen, mit dem Finder aktiviert wird, den oben genannten Pfad zu öffnen, zu überprüfen, ob die betreffende Datei vorhanden ist, diese Datei in .new umzubenennen, falls dies der Fall ist, und dann die ältere Version aus dem Ordner zu verschieben, der das Skript enthält.

Wenn das AppleScript ausgeführt wird, wenn die neue Version der Datei unter dem oben genannten Pfad vorhanden ist, möchte ich, dass das Skript die ältere Version der Datei (die zuvor kopiert wurde) in ".old" umbenennt und die neue Version von ".new" entfernt die ursprüngliche Datei (dh im Wesentlichen umgekehrt, was es zuvor getan hat, aber ohne die hinzugefügte Datei zu entfernen).

Egal, was ich versucht habe, ich war bisher nicht in der Lage, das Skript ordnungsgemäß zu authentifizieren, um die Datei umzubenennen (der betreffende Ordner erfordert offensichtlich die Genehmigung des Administrators, bevor Änderungen vorgenommen werden können).

Das Skript dazu zu bringen, Finder zu aktivieren und den Ordner zu öffnen, ist ziemlich trivial ( tell application "Finder" activate open ("/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A" as POSIX file) end tellfunktioniert z. B. einwandfrei), aber das Skript danach zu authentifizieren, auf das Vorhandensein der Datei (en) zu prüfen und dann entsprechend zu handeln, war ziemlich erfolglos Aufgabe.

Jede Hilfe wird sehr geschätzt.

Zyniker
quelle
Es könnte einfacher sein, das meiste davon in Bash zu schreiben, dann das Shell-Skript von AppleScript
Mark

Antworten:

2
do shell script "
d=/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A
if [[ -e $d/Apple80211 ]]; then
  mv $d/Apple80211 $d/Apple80211.new
  cp ~/path/to/Apple80211 $d/Apple80211
else
  mv $d/Apple80211 $d/Apple80211.old
  mv $d/Apple80211.new $d/Apple80211
fi" with administrator privileges
Lri
quelle