Skriptblåbär: kopiera mapp från server till hemkatalog?

Tråden skapades och har fått 14 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • 2007-04-05 10:22

Jag vill kopiera en mapp från en server och ersätta en mapp i ~/Library/Preferences/... utan att få frågan om jag vill ersätta. Hur gör jag det?

Bonus vore om jag kunde få en dialog för "Fortsätt" eller "Avbryt" med en egenfomulerad fråga typ "Du kommer att radera ditt eller datt".

Bonusbonus: Kryssruta för "Visa inte igen."

Var det inte vi som skulle gå kurs tillsammans?

Skulle väl tro att detta går att lösa med AppleScript - men jag borde inte svara eftersom jag är ett lika stort blåbär.

Frågan är vad AppleScript körs som, root eller användare som startar scriptet.

Säg till kursledaren att lägga den i era lokaler så får jag en bra anledning att komma ner till er.

Senast redigerat 2007-04-05 11:41
  • Medlem
  • 2007-04-05 11:43

Användare. Det ska köras inifrån InDesign.

  • Medlem
  • International user
  • 2007-04-05 12:19

Det enklaste är väl bara att dra mappen från servern till din dator. Behöver du ett script för något så simpelt?

Hmmm borde inte vara så svårt att fixa med Automator när jag tänker efter.

  • Medlem
  • Simrishamn
  • 2007-04-05 12:45

Kan du inte först flytta/radera den ursprungliga mappen, och sedan kopiera den nya mappen till dess ställe? Då blir det ju inte en ersättning du utför.

  • Medlem
  • 2007-04-05 13:18

Det är klart att jag kan flytta mappar manuellt. Men när vi uppdaterar InDesign-pluggar på 50 maskiner och användarna märker att vår specialanpassade kortkommandouppsättning inte fungerar, eller när vi gör andra förändringar som ska skjutas ut till alla användare (som har sina hemkataloger på en XServe), så vill jag inte behöva vänta på att alla ska logga in under den 4-dagarsperiod det kan bli fråga om innan alla har loggat in och kasta mappen och ersätta manuellt. Jag vill inte heller sitta och beskrirva förloppet i telefon för alla som inte kan ta till sig en mailad instruktion. Jag vill inte heller att detta ska upplevas som "besvärligt" att återställa sina programinställningar om det skulle behövas.

Automator har tre brister i sammanhanghet:
1. Arbetsflödet kommer ihåg vems hemkatalog objektet ska kopieras till. Det tgår alltså inte att distribuera.
2. Automators flöden går inte att köra inifrån InDesign.
3. Flödena kan inte styra InDesign. Jag vill börja med "tell application Adobe InDesign to quit".

tell app "finder"
display dialog "vill du kopiera?"
duplicate x to y replacing true
end

  • Medlem
  • International user
  • 2007-04-05 13:50

Har du problem med att InDesign sabbar inställningsfiler. Sedan vill du slänga hela jä...la mappen och ersätta med en ny?

  • Medlem
  • 2007-04-05 13:55

Tack!

Vad heter hemkatalogen? Den ligger ju heller inte på maskinen.

  • Medlem
  • International user
  • 2007-04-05 13:58

"path to home folder"

Jag följer med spänning hur denna jungfrufärd in AppleScript-landet ska avlöpa

  • Medlem
  • 2007-04-05 15:51

Jag får inte till path to home folder, men som vanligt gör jag väl allting lite för halvhjärtat för att lyckas fullt ut. Problemet i Appleskript är att "nära skjuter ingen hare".

Felmedd

Citat:

Finder drabbades av ett fel: Kan inte ändra "/path to home folder/Library/Preferences/Adobe InDesign/Version 5.0" till folder "/Volumes/Redaktion/Sidredigering/usrprefs/Version 5.0".

Apropå hare...

Du har tänkt rätt, men gjort fel. Allting som står inom citationstecken tolkas ordagrant, alltså ungefär som om du skulle försöka skicka ett mail till "förnamn.efternamn@domän.toppdomän" utan att först byta ut det till verkliga namn

Det du egentligen vill göra är att först att först hämta sökvägen till hemmappen och sedan lägga ihop den den med resten av sökvägen.

det bästa sättet att börja är att skriva

get path to home folder

i Manusredigeraren och sedan köra scriptet. Då ser du att du får som resultat ( i mitt fall)

alias "Macintosh HD:Users:richardr:"

Av det kan du se två saker, dels att sökvägen skrivs som en macsökväg, med kolon mellan mappnamnen istället för slash som unix, så den sökvälg du vill lägga ihop det med måste också vara skriven på det sättet

Det andra ordet "alias" är mycket viktigt. Det betyder att det tillhör en annan "class" dvs kategori än rena textsträngar, vilket betyder att du förmodligen inte kan smälla ihop det med en ren textsträng, med andra ord funkar inte

get path to home folder & "Library:Preferences:Adobe InDesign:Version 5.0:"

för det är som att lägga ihop äpplen och päron. Du måste först "coerce" (omvandla) de två delarna till samma "class" , vilket du gör genom att skriva

get (path to home folder as string) & "Library:Preferences:Adobe InDesign:"

parentesen betyder precis som i matte att den först ska räkna ut det som står innanför innan den "konkatenerar" (lägger ihop) de två delarna. Mappens namn behöver du inte ha med eftersom du ju precis som när du kopierar manuellt får det på köpet när du kopierar en hel mapp. Observera också att jag avslutar med kolon, för annars så tolkar macen det som om sökvägen till en fil, inte till en mapp

Nu när du vet att du pratar på rätt sätt byter du bara ut verbet "get" till "duplicate" alltså

tell application "Finder"
	duplicate "Redaktion:Sidredigering:usrprefs:Version 5.0:"  to (path to home folder as string) & "Library:Preferences:Adobe InDesign:"
end tell

För övrigt så menar du säkert version 4

Senast redigerat 2007-04-05 20:16
  • Medlem
  • 2007-04-10 10:32

Tack för den fina instruktionen. Men den fungerar inte på mitt konto:

Ursprungligen av Manusredigeraren:

AppleScript-fel
Finder drabbades av ett fel: Kan inte ändra "Users:spljl:Library:Preferences:Adobe InDesign:" till "Redaktion:Sidredigering:usrprefs:Version 5.0:".
[ok]

Kan det bero på att våra hemkataloger inte ligger lokalt?

Ursprungligen av Richard Rönnbäck:

För övrigt så menar du säkert version 4

Nej du, jag skapade mappen 5.0 för att testa på...

1
Bevaka tråden