Automator - hjälp?

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2017-01-16 15:40

Hej,

Jag har gjort en "app" i Automator som tar en sökväg och namn på fil jag har markerar, öppnar Terminalen, öppnar sökvägen och kör ett skript på filen. Det fungerar utmärkt förutom när det är ett mellanslag i sökvägen till filen, då slutar den (och kör på mappen som heter som första delen utan mellanslag, om sådan mapp finns - t.ex jag vill öppna sökvägen "Hej på dig", den öppnar då mappen "Hej" om sådan finns.

Här är den relevanta delen av mitt Automator skript:
tell application "Terminal"
activate
if not (exists window 1) then reopen
end tell

tell application "System Events"
keystroke "t" using command down
keystroke "cd \""
keystroke "v" using command down
keystroke return

Jag har som ni ser försökt med \" för att infoga citattecken som tecken (för att få en absolut sökväg) enligt instruktioner på https://developer.apple.com/library/content/d... men det tycks inte fungera ändå. Även provat quote som alternativ enligt sidan. Vissa andra sidor nämnt " & quote & " som alternativ, inte heller det fungerade. Även provat att lägga till key code 39 (vilket ska motsvara citattecken) på ny rad, inte heller det fungerade. Använder jag historiken i Terminal och lägger till citattecken innan och efter sökvägen så funkar allt perfekt, och det är därför jag har fokuserat på att försöka få till citattecknen automatiskt

Någon som är grym på Automator/Applescript som kan hjälpa mig?

Senast redigerat 2017-01-16 16:00
  • Medlem
  • Malmö
  • 2017-01-17 09:13

@tooobe

Det lär härröra till att du måste omsluta sökvägen till filen med enkla citationstecken.

Om du kan visa hela koden så kan jag försöka hjälpa dig. Vet inte exakt hur du har provat olika tips du refererar till men " & quote & " ser mer ut att vara ett försök att integrera variabeln quote i en sträng.

  • Medlem
  • Stockholm
  • 2017-01-17 11:56
Ursprungligen av zinned:

@tooobe

Det lär härröra till att du måste omsluta sökvägen till filen med enkla citationstecken.

Om du kan visa hela koden så kan jag försöka hjälpa dig. Vet inte exakt hur du har provat olika tips du refererar till men " & quote & " ser mer ut att vara ett försök att integrera variabeln quote i en sträng.

Absolut, enkla citationstecken går lika bra som dubbla citationstecken men jag lyckas inte omsluta sökvägen med enkla citationstecken heller. Fungerar inte att skriva ut ' i koden direkt och inte hittat något annat sätt att göra det på? Förstår inte vad du menar med hela koden, det där är koden som inte vill fungera, resten av mitt automator skript fungerar utan problem (och innehåller personliga uppgifter varför jag inte vill lägga upp den här). Dvs detta fungerar inte heller:

tell application "System Events"
keystroke "t" using command down
keystroke "cd '"
keystroke "v" using command down
keystroke return

  • Medlem
  • Malmö
  • 2017-01-17 12:01

Jag känner att det blir svårt att hjälpa dig när man inte har tillgång till allt material.

Varför skriver du inte allt i Applescript istället och skippar Automator? Om du i beskriver flödesprocessen för mig här (nej, dina personliga detaljer behöver jag inte utan de kan du ersätta med annan text) så kan jag se om jag kan få ihop ett script till dig.

  • Medlem
  • Stockholm
  • 2017-01-17 12:07
Ursprungligen av zinned:

Jag känner att det blir svårt att hjälpa dig när man inte har tillgång till allt material.

Varför skriver du inte allt i Applescript istället och skippar Automator? Om du i beskriver flödesprocessen för mig här (nej, dina personliga detaljer behöver jag inte utan de kan du ersätta med annan text) så kan jag se om jag kan få ihop ett script till dig.

Ok tar jag bort min personliga text i scriptet så blir hela scriptet:

tell application "Terminal"
activate
if not (exists window 1) then reopen
end tell

tell application "System Events"
keystroke "t" using command down
keystroke "cd "
keystroke "v" using command down
keystroke return
keystroke "unrar "
keystroke "v" using command down
keystroke return
end tell

Dvs scriptet ska kopiera markerad fil i Finder, öppna Terminalen, gå till mappen och köra scriptet unrar på filen. Har aldrig använt Applescript utan trodde att Automator gjorde i princip samma sak men ersatt Applescript i nyare versioner av OSX? Men jag kanske har fel. Scriptet har fungerat perfekt väldigt länge då jag faktiskt aldrig stött på att jag behövt göra det i en mapp som har ett mellanslag (dessutom ligger filerna nu dessutom på min NAS med sökväg så som /Volumes/filer/Mina filer/Mapp1 där den då kör på mappen "Mina" istället om sådan finns)

  • Medlem
  • Malmö
  • 2017-01-17 12:47

Programmet som ska hantera uppackningen av filen, finns det någon speciell anledning att det ska köras via terminalen? Det är inget traditionellt program med GUI?

  • Medlem
  • Stockholm
  • 2017-01-17 13:18

Det är helt irrelevant... Jag fick det att fungera till slut iaf. Om någon undrar samma sak så är rätt kommando:
keystroke "cd " & quote
keystroke "v" using command down
keystroke quote & return

  • Medlem
  • Malmö
  • 2017-01-17 13:32
Ursprungligen av tooobe:

Det är helt irrelevant... Jag fick det att fungera till slut iaf. Om någon undrar samma sak så är rätt kommando:
keystroke "cd " & quote
keystroke "v" using command down
keystroke quote & return

Annars borde nedanstående kod fungera utmärkt, då kan du skippa Automator helt. Jag skapade även en applikation till dig - Unrar.app.

Citat:

tell application "Finder"
set theFile to (choose file with prompt "Select the start folder")
set file_path to POSIX path of theFile as string
end tell

tell application "Terminal"
activate
if not (exists window 1) then reopen
end tell

tell application "System Events"
keystroke "t" using command down
keystroke "unrar " & quoted form of file_path
keystroke return
end tell

Edit: Korrekt fil i länken ovan. Har du laddat ner den tidigare så ta bort den och använd nuvarande istället.

  • Medlem
  • Stockholm
  • 2017-01-17 13:35
Ursprungligen av zinned:

Annars borde nedanstående kod fungera utmärkt, då kan du skippa Automator helt. Jag skapade även en applikation till dig - Unrar.app.

Tack. För nyfikenhetens skull - varför skulle Applescript funka bättre än Automator?

  • Medlem
  • Malmö
  • 2017-01-17 13:43
Ursprungligen av tooobe:

Tack. För nyfikenhetens skull - varför skulle Applescript funka bättre än Automator?

Lättare att styra mer själv, känner jag. Du har kan sedan lära dig mer Applescript av det samt att du kan lättare återanvända kod till andra sammanhang senare.

Testa applikationen och se vad du tycker, om den gör det du önskar.

1
Clean my mac!
Bevaka tråden
Clean my mac!
Clean my mac!