Neu hier, aber ich habe Schwierigkeiten, ein AppleScript zusammenzustellen, das im Grunde genommen einen SMB-Link nimmt und ihn in einen UNC-Link umwandelt, bevor ich ihn an ein paar Win10-Clients sende.
Alle dasselbe Netzwerk, wir verwenden alle ein SNS NAS und es ist für Adobe Premiere-Links. Wir können das alles manuell machen, aber die Redakteure haben keine Zeit/Geduld, jeden Link umzuwandeln. Wir suchen nach einem automatisierten Skript, das wir als Dienst integrieren könnten, der ausgewählten Text konvertiert.
Ich habe den folgenden Artikel gefunden, aber es ist das Gegenteil von dem, wonach wir suchen. Ich habe versucht, alle Funktionen darin umzukehren, konnte es aber nicht richtig zum Laufen bringen.
https://gist.github.com/anonymous/2211017
Es wäre auch großartig, wenn der erstellte „Dienst“ den Eintrag einfach in die Zwischenablage kopieren würde, sodass der Endbenutzer ihn in ein paar verschiedene Dinge wie E-Mail und Slack-Messenger einfügen kann.
Hoffentlich kann mir jemand helfen oder mich in die richtige Richtung lenken. Ich habe ungefähr eine Woche lang Google danach durchforstet.
BEARBEITEN ** Beispiele unten
Alter Pfad 'smb://server/folder'
Neuer Pfad '\\Server\Ordner'
Vielleicht etwas spät zur Party, aber wir verwenden dafür eine Drittanbieter-App bei der Arbeit
funktioniert ziemlich gut, vor allem, dass Sie mit der rechten Maustaste auf eine beliebige Datei auf einem UNC-Laufwerk klicken und den Pfadnamen kopieren können, um das Windows-Ergebnis zu erhalten
HINWEIS: Diese Antwort ist nur als Beispiel gedacht, wenn der SMB-Pfad außer Doppelpunkt, Schrägstrichen und Backslashes und ohne Leerzeichen nur alphanumerische Zeichen im Namen enthält! Wenn Sie etwas anderes berücksichtigen müssen, dh die Kommentare zu dieser Antwort lesen, müssen Sie den Code entsprechend Ihren Anforderungen ändern. Allerdings habe ich in all meinen Jahren als Netzwerksystemadministrator und Netzwerksystemingenieur nie Freigaben erstellt, die Leerzeichen oder andere als die Notwendigkeit von Doppelpunkten, Schrägstrichen, umgekehrten Schrägstrichen und alphanumerischen Zeichen enthalten, und daher ist dieses einfache Beispiel alles, was ich brauche Übersetzen Sie jeden, zB smb://server/folder
in \\server\folder
, SMB-Pfad, den ich jemals verwendet habe, in einen UNC-Pfad. YMMV!
Erstellen Sie in Automator einen neuen Service- Workflow und fügen Sie ihm dann eine Run AppleScript- Aktion hinzu, während Sie den Standard- AppleScript- Code durch den folgenden Code ersetzen :
on searchReplace(theText, SearchString, ReplaceString)
set OldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to SearchString
set newText to text items of theText
set AppleScript's text item delimiters to ReplaceString
set newText to newText as text
set AppleScript's text item delimiters to OldDelims
return newText
end searchReplace
on run {input, parameters}
set selectedText to item 1 of input as string
set convertedText to searchReplace(selectedText, "smb://", "\\\\")
set convertedText to searchReplace(convertedText, "/", "\\")
set the clipboard to convertedText as string
return convertedText
end run
Speichern Sie dann den Dienst als: SMB-Pfad in UNC-Pfad konvertieren
Jetzt wird „SMB-Pfad in UNC-Pfad konvertieren“ im Menü „Dienste “ oder im Kontextmenü „ Dienste “ angezeigt , wenn Text ausgewählt ist , und wenn der Dienst verwendet wird, wird der UNC-Pfad in die Zwischenablage eingefügt . (Dies setzt natürlich voraus, dass es sich bei dem ausgewählten Text tatsächlich um einen SMB-Pfad handelt . Andernfalls wird dort genau der Text platziert, der beim Ausführen des Dienstes ausgewählt wurde , einschließlich aller vorgenommenen Ersetzungen.)
Der Beispiel- SMB-Pfad smb://server/folder
wird in einen UNC-Pfad \\server\folder
konvertiert und in die Zwischenablage eingefügt .
Hinweis: Beachten Sie die Einstellungen des Dienstes im Bild unten. Das Kontrollkästchen Ausgabe ersetzt ausgewählten Text ist deaktiviert. Sie können es ankreuzen, wenn Sie das möchten, aber wenn der ausgewählte Text tatsächlich nicht ersetzbar ist, wird der Dienst nicht im Dienste- Menü oder Dienste- Kontextmenü angezeigt .
\
Escape-Leerzeichen enthält?set convertedText to searchReplace(selectedText, "\\", "")
, die alle Backslashes entfernt, und daher gehe ich davon aus, dass ein Escape-Leerzeichen behandelt wird. Können UNC-Pfade Leerzeichen enthalten? Wenn ja, sollte ein UNC-Pfad mit Leerzeichen angegeben werden?convertedText
der der UNC-Pfad sein wird, in die Zwischenablage legen und ihn zitieren lassen, ob er Leerzeichen hat oder nicht, wäre immer noch in Ordnung zitiert? Ich kann im Moment nicht testen und warum ich um Ihre Eingabe bitte. Danke.<>|?*"
.
Benutzer3439894