Se vuoi semplicemente passare un nome di file all'azione Spotlight
Passa il nome del file da un'azione a una variabile set Azione
- imposta l'azione Spotlight per ignorare l'azione sopra descritta.
Fatto facendo clic con il pulsante destro sulla barra del titolo e utilizzando il menu.
- trascinaerilasciailtokenvariabilenelcampoditestodiricerca.
QUESTO È UN AGGIORNAMENTO
Utilizzo delle azioni di Automator e di Applescript per memorizzare le proprietà per il successivo recupero:
L'idea qui è la prima azione che scrive un file applescript nella cartella dei documenti.
Lo script verrà utilizzato per memorizzare le informazioni che otteniamo lungo il percorso e recuperarle successivamente nell'azione finale di Applescript.
Lo facciamo perché abbiamo bisogno di passare allo script finale più bit di informazione. Che non possiamo fare con le normali variabili in Automator.
Le azioni.
- EseguiApplescript:scriviunoscriptdiarchiviazionenellacartelladocumenti
Loscript.
setscript_texttoMakeScript()myRunMaker(script_text)onRunMaker(script_text)setfile_pathto(pathtodocumentsfolderasUnicodetext)&"MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
on MakeScript()
script
property theBrokenAliasFolderPath : ""
property broken_alias_file_Paths : {}
property theOriginalFolderPath : ""
property Original_file_Paths : {}
property SearchfileNames : {}
end script
end MakeScript
2, Ask for Finder Items: Questo è per la cartella Alias interrotto.
- Imposta su Ignora input
- imposta la partenza su: nella cartella alias danneggiata.
- imposta il tuo tipo su: cartella
3, Esegui script di applicazione:
- Scrive il percorso della cartella alias interrotto su una proprietà nel file di script di archiviazione.
- passa il percorso alla prossima azione
(I write out sono eseguiti da Action Applescript che carica lo script del file di archiviazione, che sarà una versione di sorta, quindi cambierà le proprietà nella sua versione e riscriverà nuovamente il file sostituendo il vecchio)
--WRITE OUT BROKEN ALIAS FOLDER PATH
on run {input, parameters}
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set script_text to load script file_path
set theBrokenAliasFolderPath of script_text to (POSIX path of (item 1 of input))
my RunMaker(script_text)
return input
end run
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
4, Ottieni contenuto cartella:
- L'azione riceve il "percorso della cartella alias interrotto" e ottiene tutti i contenuti della cartella.
5, elementi del filtro di ricerca:
- Filtra gli elementi in modo che contengano solo file alias.
Tutti: Tipo: è: altro: alias
- Passa l'elenco alla prossima azione
6, Esegui script di applicazione:
Scrive PATH alias spezzato su una proprietà nel file di script di archiviazione.
on run {input, parameters}
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set script_text to load script file_path
set broken_alias_file_Paths of script_text to input
my RunMaker(script_text)
return input
end run
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
7, Chiedi elementi del Finder: Questo è per la cartella dei file originali.
- Imposta su Ignora input
- imposta l'inizio su: nella cartella dei file originali.
- imposta il tuo tipo su: cartella
8, Run Applescript:
Scrive la cartella dei file originali in una proprietà nel file di script di archiviazione.
on run {input, parameters}
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set script_text to load script file_path
set theOriginalFolderPath of script_text to (POSIX path of (item 1 of input))
my RunMaker(script_text)
return input
end run
on RunMaker(script_text)
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt"
set file_path to POSIX path of file_path as string
store script script_text in file_path with replacing
end RunMaker
9, Run Applescript:
Questo recupera le informazioni dallo script di archiviazione.
Questo richiederà l'elenco dei percorsi dei file alias morti.
-
Prova e trova un file corrispondente nella cartella dei file originali. Osserverà tutte le corrispondenze ma ignorerà gli alias.
-
Rimuovi il vecchio file Alias (controllando che sia prima un file alias)
-
Crea un link simbolico nella cartella in cui si trovava il vecchio alias dal file di corrispondenza trovato.
-
Solo i file alias dovrebbero essere cancellati. Se non viene trovato alcun file corrispondente, il file alias non verrà eliminato. Né verrà creato un collegamento simbolico.
.
set file_path to (path to documents folder as Unicode text) & "MyProperties.scpt" as alias
set theScript to load script file_path
--choose a search folder
set searchPath to quoted form of theOriginalFolderPath of theScript
set folderPath to quoted form of theBrokenAliasFolderPath of theScript
set input to broken_alias_file_Paths of theScript
repeat with i from 1 to count of items of input
set this_item to item i of input
set aliasPath to this_item
#Get the the file name
set theFileName to "\\"" & (do shell script "basename " & quoted form of (POSIX path of (this_item))) & "\\"" as string
log theFileName
#search the searchPath for a matching file with the same name.
#NOTE: this will find all files with he same name. So We use last paragraph to get what should be the first one it finds.
set theOrigFilePath to paragraphs of (do shell script "mdfind -onlyin " & searchPath & " kMDItemFSName == \"" & theFileName & "\"")
if theOrigFilePath is not quoted form of "" then
repeat with i from 1 to count of items in theOrigFilePath
set this_item to item i of theOrigFilePath
log this_item
tell application "Finder"
#make sure we are pointing to an alais that will be deleted and not another symlink file. Otherwise the original file will be deleted.
set theKind to kind of ((POSIX file this_item) as alias)
if theKind is not equal to "Alias" then
set this_item to quoted form of (item i of theOrigFilePath)
my symLink(aliasPath, this_item)
end if
end tell
end repeat
end if
end repeat
on symLink(aliasPath, aOrigFilePath)
#move to trash the old alias file
set theOldAlias to aliasPath
tell application "Finder"
#make sure we are pointing to an alais that will be deleted and not another symlink file. Otherwise the original file will be deleted.
set theKind to kind of theOldAlias
set theNewFilePath to (POSIX path of (aliasPath)) as string
if theKind is equal to "Alias" then
delete theOldAlias
log "ln -s " & aOrigFilePath & space & (quoted form of theNewFilePath)
#create the symlink
do shell script "ln -s " & aOrigFilePath & space & (quoted form of theNewFilePath)
end if
end tell
end symLink
Prova prima .. usa a tuo rischio e tutto il resto ..