Error using Applescript to move subfolders
I am trying to move subfolders of a user selected folder to another folder, via Applescript, but this fails with "*Finder got an error: Can't make {alias "Macintosh HD:Users:Me:Data:Folder1:","Example Subfolder"} into type point.* "
Obviously "Example Subfolder" is just a subfolder in the directory I select. I assume I'm doing something wrong in the set source_folder line? The code is as as follows:
set folderSelected to choose folder "Select a folder"
tell application "Finder"
set listOfFolders to every folder of folderSelected
end tell
repeat with aFolder in listOfFolders
set tempname to the name of aFolder
tell application "Finder"
display dialog "Folder named " & tempname
set source_folder to folderSelected & tempname
set destination_folder to folder "Macintosh HD:Users:Me:Data:Folder1"
display dialog "Destination folder is " & destination_folder
move folder source_folder to destination_folder
end tell
end repeat
My script has moved on a bit, and I'm using it for an alternative purpose now, but I've hit a different issue. The script below creates the folder named 1, but then the dialog box states the Destination folder is "M" - not sure why?
set folderSelected to choose folder "Select a folder"
tell application "Finder"
set folder_num to 1
set maxFolderSize to 680
set listOfFolders to every folder of folderSelected
make new folder at "Macintosh HD:Users:Darrell:Music" with properties {name:folder_num}
repeat with aFolder in listOfFolders
display dialog "Found a folder named " & (name of aFolder)
set destination_folder to folder folder_num of "Macintosh HD:Users:Darrell:Music"
display dialog "Destination folder is " & destination_folder
set Posix_DestinationPath to quoted form of POSIX path of (destination_folder as text)
set the_destinationscript to "du -ks " & Posix_DestinationPath & "| awk '{print $1}'"
set the_destinationsize to do shell script the_destinationscript
--used for debugging, so outcommented
(* display dialog "The destination folder is " & the_destinationsize / 1024 & " MB in size" *)
set Posix_SourcePath to quoted form of POSIX path of (aFolder as text)
set the_sourcescript to "du -ks " & Posix_SourcePath & "| awk '{print $1}'"
set the_sourcesize to do shell script the_sourcescript
--used for debugging, so outcommented
(* display dialog "The source folder is " & the_sourcesize / 1024 & " MB in size" *)
if (the_sourcesize + the_destinationsize) / 1024 > maxFolderSize then
display dialog "Total size is " & (the_sourcesize + the_destinationsize) / 1024
display dialog "Destination folder full"
set folder_num to folder_num + 1
make new folder at "Macintosh HD:Users:Darrell:Music" with properties {name:folder_num}
set destination_folder to folder folder_num of "Macintosh HD:Users:Darrell:Music"
move aFolder to destination_folder
else
move aFolder to destination_folder
end if
end repeat
end tell
Similar Messages
-
Error while using BAPI_GOODSMVT_CREATE wiht movement type 311.
Hi All experts,
i am geting error msg, while using BAPI_GOODSMVT_CREATE wiht movement type 311.
the error msg is " For reservation 0000443815 0000, no movements can be posted".
Here is my code.
IF I_ZMM_S_MBIB_LOT[] IS NOT INITIAL.
*moving posting date and document date to header
GOODSMVT_HEADER-PSTNG_DATE = ZMM_S_MBIB_311-BUDAT.
GOODSMVT_HEADER-DOC_DATE = ZMM_S_MBIB_311-BUDAT.
LOOP AT I_ZMM_S_MBIB_LOT WHERE MENGE NE '0'.
IF I_ZMM_S_MBIB_LOT-IND = 'X'.
*moving material and plant ,stge_loc,qty and movement type to header
GOODSMVT_ITEM-MATERIAL = I_ZMM_S_MBIB_LOT-MATNR.
GOODSMVT_ITEM-PLANT = I_ZMM_S_MBIB_LOT-WERKS.
GOODSMVT_ITEM-BATCH = I_ZMM_S_MBIB_LOT-CHARG.
GOODSMVT_ITEM-STGE_LOC = I_ZMM_S_MBIB_LOT-SLGORT.
GOODSMVT_ITEM-MOVE_TYPE = '311'.
GOODSMVT_ITEM-ENTRY_QNT = I_ZMM_S_MBIB_LOT-MENGE.
GOODSMVT_ITEM-ENTRY_UOM = I_ZMM_S_MBIB_LOT-MEINS.
GOODSMVT_ITEM-MOVE_MAT = I_ZMM_S_MBIB_LOT-MATNR.
GOODSMVT_ITEM-MOVE_PLANT = I_ZMM_S_MBIB_LOT-RWERKS.
GOODSMVT_ITEM-MOVE_BATCH = I_ZMM_S_MBIB_LOT-UMCHA.
GOODSMVT_ITEM-MOVE_STLOC = I_ZMM_S_MBIB_LOT-UMLGO.
GOODSMVT_ITEM-RESERV_NO = I_ZMM_S_MBIB_LOT-RSNUM.
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
GOODSMVT_HEADER = GOODSMVT_HEADER
GOODSMVT_CODE = '04'
TESTRUN = ' '
GOODSMVT_REF_EWM =
IMPORTING
GOODSMVT_HEADRET =
MATERIALDOCUMENT = MATERIALDOCUMENT
MATDOCUMENTYEAR = MATDOCUMENTYEAR
TABLES
GOODSMVT_ITEM = GOODSMVT_ITEM
GOODSMVT_SERIALNUMBER =
RETURN = RETURN.
GOODSMVT_SERV_PART_DATA =
EXTENSIONIN =
ELSE.
Moderator message: duplicate post locked.
Edited by: Thomas Zloch on Feb 23, 2011 11:46 AMHi Sachin,
Pass the Item Number of Reservation to GOODSMVT_ITEM-RES_ITEM .
Regards
DKS -
Use of Java Swing +Applescript to move and resize Mac OS X windows using
Here is an interesting use of Java on Mac OS X and Applescript to
enable moving and resizing of windows using mouse and keyboard:
[MoveResize tool|http://code.google.com/p/sandipchitalesmacosxstuff/#Move_and_resize_windows_on_Mac_OS_X]
How it works:
The implementation uses Applescript to get the front most window and
it's bounds. It sends the bounds rectangle to a server implemented in
Java over a socket connection. The Java server takes the screen shot
of the full Desktop and uses it as the Image label (a JLabel with
ImageIcon) as the content pane of an undecorated JFrame which has the
same bounds as the Desktop. A JPanel with semitransparent background
and a dark rounded rectangular border is given the same bounds that
were received over the socket. This JPanel is added to the
PALETTE_LAYER of the JFrame's layered pane - which makes it appear
floating in front of the front window. A Mouse and a Key listener
added to the JPanel allow moving and resizing of the JPanel. When the
user types the ENTER key the JFrame is hidden and the new bounds of
the JPanel are sent back to the Applescript over the socket connection
which moves and resizes the front most window.
Enjoy!
Sandip
Edited by: chitale on May 14, 2009 4:12 AMCopy the /Home/Documents/ folder to the NAS drive. That drive needs to support AFP or you may run into filename problems and/or other file related problems due to filesystem differences.
Once the folder has been moved to the NAS select the folder on the NAS and CTRL- or RIGHT-click. Select Make Alias from the drop down menu. You should now have an alias named "Documents alias." On the Mac put the /Home/Documents/ folder in the Trash but don't delete it. Copy the alias file from the NAS to the /Home/ folder. Rename it to simply "Documents." Double-click on it to be sure it opens the folder on the NAS. If so you can empty the Trash. You're done. -
EventHandler Error while using AppleScript
hi,
I use AppleScript to launch Acrobat and run a preflight. Running this a script creates an "Not specfied EvnetHandler Error".
I guess it come from resolving the filename and path. May somebody nows the "way" to define the preflight profile directly in the script.
on run this_file
try
process_item(this_file)
end try
end run
-- this sub-routine processes files
on process_item(this_item)
try
tell application "Finder"
set myPath to path to me
end tell
with timeout of 1 second
tell application "Adobe Acrobat Pro"
activate
delay 1
«event PRFLPRFL» this_item given «class PATH»:myPath
end tell
end timeout
end try
end process_itemuser10310678 wrote:
I am using beta version. Oracle VM Manager 2.2.0If you have a beta version of 2.2, then you should be an Oracle employee. Please ask this question on an internal mailing list. If you are not an Oracle employee, please ask the employee that gave you this beta. As this is a beta, some functionality may not be operational yet, so I can't answer why this particular feature seems not to work. -
How to find the frames-per-second of a Quicktime movie using Applescript?
Is there a way to find out the real-time "frames per second" of a Quicktime movie?
The only Applescript movie properties in Quicktime which I have found to be useful are "duration" and "time scale". The real-time duration of the movie in seconds is found by dividing "duration" by "time scale".
But "time scale" only sometimes relates to any real time property. In some cases it does (2500 = PAL 25 fps, 2997 = NTSC 29.97 fps) but for many other movie types I've opened (DivX, flv, mp4 etc) the "time scale" is often reported as "600" even though the Quicktime movie inspector window will report a frame rate of 25, 29.97, 15 or some other number.
Where does the Quicktime movie inspector window extract the FPS from, and is it possible to extract that same number, or calculate the real-time FPS of a Quicktime movie using Applescript only?
Thanks.Thanks for this but unfortunately it only works for some movie types. For .dv .flv and .divx movies, this script correctly calculates the FPS. But for .mpg .mp4 and .m4v it does not.
For .mpg movies I tested, the count of frames was always 1, so clearly the FPS calculation is always wrong.
For the .mp4 and .m4v movies I tried, the FPS was always reported as 43, regardless of whether the actual FPS was 25 or 29.97. In all cases the count of frames was incorrect.
A bug in Quicktime? -
Using applescript to react to a application error
Hey, my friends
I want to using applescript to handle with some application error. For example, I send a iMessage to my friend for the first time, after a while the Message application may return a messagebox said that he is not using iMessage service. And I want my computer say it out loud using "say" script. How can I do that? Or is that impossible?
There might be a way by using some error log file belongs to the application from which I want to be notified if an error happend. But I don't know where I can find those log files.
Any ideas?
Thanks!
Qiu.I'd figure out how to do the shutdown from the command line. You then should be able to do this from an applescript.
There is some way of initiating an apple script on a remote machine but I do not know how.
What OS is the remote server using?
Robert -
Moving a layer in Photoshop CS5 using Applescript
I have a layer in a document called "logo" and i want to duplicate it to every open document and then move it to a specific spot in each document
I got the duplicating thing happening but cant seem to move the bounds of the layer (says it is read only and cannot be changed)
here is what I have written
tell application "Adobe Photoshop CS5"
activate
set theDocs to count of documents
repeat with i from 1 to theDocs
duplicate art layer "logo" of current document to document i
end repeat
repeat with i from 1 to theDocs
set current document to document i
tell document i
set bounds of art layer "logo" to {0.456666666667, 6.38, 2.88, 6.77}
--Adobe Photoshop CS5 got an error: Property is read/only and cannot be changed
end tell
end repeat
end tell
This doesn't error but also doesn't move the logo at all
tell application "Adobe Photoshop CS5"
activate
set theDocs to count of documents
repeat with i from 1 to theDocs
duplicate art layer "logo" of current document to document i
end repeat
repeat with i from 1 to theDocs
set current document to document i
tell document i
set properties of art layer "logo" to {bounds:{0.456666666667, 6.38, 2.88, 6.77}}
end tell
end repeat
end tell
anyone know what the language is to move the layer around?In any language the way to move a layer x,y is to use translate… You will need to do the math from current x,y to required x,y given a distance… A read only property is just that regardless of language… Here is a quick example of how I did this kind of thing using Applescript… I still do the same method now but use the ESTK instead…
tell application "Adobe Photoshop CS2"
activate
-- Store the app settings
set User_Rulers to ruler units of settings
set User_Dialogs to display dialogs
set ruler units of settings to pixel units
set display dialogs to never
set Doc_Ref to the current document
tell Doc_Ref
-- Store the image res so we can put it back
set Original_Res to resolution
-- Change to work at 72 dpi
resize image resolution 72 resample method none
-- Move horizontal 1 inch
translate layer 1 delta x 72 as pixels
-- Move vertical 1 inch
translate layer 1 delta y 72 as pixels
-- Read the bounds propety
set Layer_Bounds to bounds of layer 1
log Layer_Bounds
-- Move the layer using bounds to top/left
translate layer 1 delta x -(item 1 of Layer_Bounds) as pixels
translate layer 1 delta y -(item 2 of Layer_Bounds) as pixels
-- Put back the image res
resize image resolution Original_Res resample method none
end tell
-- Put back the app settings
set ruler units of settings to User_Rulers
set display dialogs to User_Dialogs
end tell
You should get the general idea of how this works from this. It should move the first layer across 1 inch, down i inch then put it top/left. It assumes you have a layer that is not a background layer nor is it locked in any way… -
Using AppleScript to auto-archive mail in Outlook 2011
I want to use AppleScript to set up a schedule to auto-archive mail greater than X days old. What I've found so far is below, and the error I'm receiving is "error "Microsoft Outlook got an error: Can’t get pop account \"TargetProcess\"." number -1728 from pop account "TargetProcess"".
# the time we want to archive from
set theArchiveCutoffTime to ((current date) - (32 * days))
property theCount : 0
tell application "System Events"
set targetProcess to count (every application process whose name is "Mail")
end tell
tell application "Microsoft Outlook"
set thisAccount to pop account "TargetProcess"
set thisFolders to mail folder of thisAccount
# find the "Inbox" of topFolder and "Mail ARCHIVE" of on my computer
repeat with thisFolder in thisFolders
if name of thisFolder is "Inbox" then
set theInbox to thisFolder
else if name of thisFolder is "Mail ARCHIVE" then
set theARCHIVE to thisFolder
end if
end repeat
# find the archive "Inbox"
repeat with thisFolder in mail folder of theARCHIVE
if name of thisFolder is "Inbox" then
set theArchiveInbox to thisFolder
end if
end repeat
set theArchiveTarget to theArchiveInbox
# archive the Inbox
repeat with theMessage in message in theInbox
if time received of theMessage < theArchiveCutoffTime then
move theMessage to theArchiveTarget
set theCount to theCount + 1
else
# we get messages from oldest to newest
exit repeat
end if
end repeat
# archive sub-folders
repeat with thisSubfolder in mail folder of theInbox
# find the archive subfolder corresponding to this
repeat with thisARCHIVEubfolder in mail folder of theArchiveInbox
if name of thisARCHIVEubfolder is name of thisSubfolder then
set theArchiveTarget to thisARCHIVEubfolder
end if
end repeat
# archive messages
repeat with theMessage in message in thisSubfolder
if time received of theMessage < theArchiveCutoffTime then
move theMessage to theArchiveTarget
set theCount to theCount + 1
else
# we get messages from oldest to newest
exit repeat
end if
end repeat
end repeat
end tell
I'm working in AppleScript Editor v2.6.1 (152.1), Microsoft Outlook 2011 v14.3.5, OSX 10.9.4 Mavericks.Ok, red_menace above me had a shorter and more elegant solution to the question, I'm adding this just for another example.
To solve your problem I'd make a mail rule that looked for any messages with "Filename:" in them (along with whatever criteria you wanted, like sender, domain, etc). The mail rule would execute the Applescript. My assumption is that the "Filename:foobar" text could be anywhere in the email, not necessarily the first thing in a paragraph, so I had to parse it differently.
The results end up in a datalist, (theFilename {} ) that you can parse later to collect all filenames found in whatever messages were processed.
I realize this could be cleaner, hope it's not hard to follow, but I did it really fast. It works flawlessly for me, picking out the name of the file no matter where in the email it appears.
using terms from application "Mail"
on perform mail action with messages theSelectedMessages for rule theRule
repeat with aCounter from 1 to count theSelectedMessages
set theMessage to item aCounter of theSelectedMessages
set theContent to content of theMessage
set theWords to every word of theContent
set theFilename to {}
set tid to AppleScript's text item delimiters
set AppleScript's text item delimiters to ":"
repeat with thisLoop in theWords
try
if (text item 1 of thisLoop) is "Filename" then
set end of theFilename to (text item 2 of thisLoop)
-- rest of your logic goes here the display is just to show it finds the filename, take it out!
display dialog theFilename ¬
buttons {"OK"}
end if
end try
end repeat
set AppleScript's text item delimiters to tid
end repeat
end perform mail action with messages
end using terms from
Message was edited by: stephen.bradley Typos for the win! -
How can I change the font size of an outgoing instant message using Applescript?
Text copied into Messages.app from a web page is often too small to read. Is there a quick way to boost the font size using Applescript?
HI,
I have spent some time looking at the Mix Message Case.scpt in Hard Drive/Library/Scripts/Messages and also Crazy Message Text.scpt in the same Scripts Folder but then the Mail one.
Both are Apple versions.
The Mix Case one is set in Messages > Preferences > Alerts
Set the top drop down to Sent Message
Enable the Applescript items and chose the Mix Case item.
It will look something like this in the current Font and size you have set.
ThEn aGaIn
Obviously you don't want all the bit to make the font change between upper an lower case but it does have the option to use it with the Sent Message and it also uses the entry in the text field as a String.
The Mail Crazy Message one opens a dialogue box when run.
it has a default phase and some Upper and lower limits to the size that will be used.
the Dialogue allows you to change the phrase and also "Set Prefs" to altert the font sizes.
The result is a text palce in a new Mail items and the font and size changes to look like this:-
Picture
It will look different everytime and the Font for each character and the size of each is randomised.
Although I have tried sticking in a line to change the size to anything other then my set font in the Mixed Case one I can't get it to work.
In some cases I get an Script error in Messages (It seems to think I am setting a Font called "10")
At other times it just says it can't set it buit still does the Mixed Case bit.
My hope was to change the size and then reduce the requirement for the "intercaps" routine.
I have other emails about new posts so I will anwser them and then spend some more time on this.
9:01 PM Thursday; June 13, 2013
iMac 2.5Ghz 5i 2011 (Mountain Lion 10.8.4)
G4/1GhzDual MDD (Leopard 10.5.8)
MacBookPro 2Gb (Snow Leopard 10.6.8)
Mac OS X (10.6.8),
Couple of iPhones and an iPad
"Limit the Logs to the Bits above Binary Images." No, Seriously -
ICal and subscribed calendars with MobileMe using AppleScript
I am having the same problem as many of you; I have a MobileMe account which does not sync the calendars I have in iCal that are subscriptions. I found this great script online which I'll post below. I don't know anything about AppleScript so I'm just copy-pasting. I want it to work, but I'm getting the error "The variable theOldEvent is not defined." right around the line "if similar_found is true then set theOldSummary to the summary of theOldEvent" kinda near the middle. Like I said, I don't know anything about AppleScript. So my question is; how can I fix this error and/or is there some better way of using AppleScript/Automator to do this same thing? Thanks!
Script to duplicate Calendar orgCalendar into target dupCalendar
E.H. 12.9.2008
property myCopies : 0
property myUpdates : 0
property myObsoletes : 0
property orgCalendar : "Sekretariat"
property dupCalendar : "Sekretariat copy"
property dupEvents : {}
property myDeletes : {}
set myCopies to 0
set myUpdates to 0
set myObsoletes to 0
set dupEvents to {}
tell application "iCal"
-- set theCalendars to every calendar
set theCalendarNames to title of every calendar
set theOrgCalendar to a reference to calendar orgCalendar
if theCalendarNames contains dupCalendar then
set theCalendar to a reference to calendar dupCalendar
else
set theCalendar to make new calendar with properties {title:dupCalendar}
--set theCalendar to make new calendar with properties {title:dupCalendar, color:"{65535, 0, 0}"}
end if
set the eventList to uid of every event of theOrgCalendar as list
set the eventCount to the count of the eventList
repeat with theUId in eventList
tell theOrgCalendar
set theEvent to (the first event whose uid is theUId)
-- set theProperties to the properties of theEvent as record
set theDate to the start date of theEvent
set theSummary to the summary of theEvent
set theStampDate to the stamp date of theEvent
end tell
tell theCalendar
try
set theOldEvent to (the first event of theCalendar whose (start date) is theDate as date)
set similar_found to true
on error
set similar_found to false
set theEndDate to the end date of theEvent
set theAllDay to the allday event of theEvent
set theLocation to the location of theEvent
-- Funny construction to work araund the fact that location may be missing a value
try
if theLocation is equal to "" then
end if
on error
set theLocation to ""
end try
set theDescription to the description of theEvent
try
if theDescription is equal to "" then
end if
on error
set theDescription to ""
end try
if theAllDay is true then -- work around a funny bug with all day events
set theDate to (theDate as date) + 2 * hours
set theEndDate to (theEndDate as date) + 2 * hours
end if
set newEvent to make new event at end with properties {summary:theSummary, location:theLocation, start date:theDate, end date:theEndDate, allday event:theAllDay, description:theDescription}
-- make new event at end with properties theProperties
set the end of dupEvents to (the uid of newEvent)
set myCopies to (myCopies + 1)
end try
end tell
set second_necessary to false
if similar_found is true then
set theOldSummary to the summary of theOldEvent
if theSummary is not equal to theOldSummary then
--is there a different one?
try
set theOldEvent1 to (the second event of theCalendar whose (start date) is theDate as date)
set theOldSummary to the summary of theOldEvent1
if theSummary is equal to theOldSummary then
set theOldEvent to theOldEvent1
set the end of dupEvents to (the uid of theOldEvent)
else
-- cycle repeat ?
end if
on error
-- beep
try
set theEvent1 to (the second event of theOrgCalendar whose (start date) is theDate as date)
set second_necessary to true
on error
set the end of dupEvents to (the uid of theOldEvent)
end try
end try
else
set the end of dupEvents to (the uid of theOldEvent)
end if
if second_necessary is true then
set theEndDate to the end date of theEvent
tell theCalendar
set theOldEvent to make new event at end with properties {summary:theSummary, start date:theDate, end date:theEndDate}
end tell
set the end of dupEvents to (the uid of theOldEvent)
end if
set theOldStampDate to the stamp date of theOldEvent
if theStampDate is greater than theOldStampDate then
-- update the event
set summary of theOldEvent to theSummary -- capitalization may have changed
set theAllDay to the allday event of theEvent
set allday event of theOldEvent to theAllDay
set theEndDate to the end date of theEvent
if theAllDay is true then -- work around a funny bug with all day events
set theEndDate to (theEndDate as date) + 2 * hours
end if
set end date of theOldEvent to theEndDate
set theDescription to the description of theEvent
try
if theDescription is equal to "" then
end if
on error
set theDescription to ""
end try
set description of theOldEvent to theDescription
set myUpdates to myUpdates + 1
end if
end if
end repeat
end tell
-- Delete obsolete events
set myObsoletes to 0
set myDeletes to {}
tell application "iCal"
set myUIDs to uid of events of theCalendar
end tell
repeat with myUID in myUIDs
if dupEvents does not contain myUID then
set the end of myDeletes to myUID
set myObsoletes to (myObsoletes + 1)
end if
end repeat
tell application "iCal"
repeat with myDel in myDeletes
delete (every event of theCalendar whose uid is myDel)
end repeat
end tell
-- delete duplicates
set myDeletes to {}
tell application "iCal"
set myStarts to start date of events of theCalendar
set mySummaries to summary of events of theCalendar
set myUIDs to uid of events of theCalendar
set myLength to length of myUIDs
end tell
repeat with i from 1 to (myLength - 1)
set thisStart to (item i of myStarts)
set thisSumm to (item i of mySummaries)
repeat with j from (i + 1) to myLength
set thatStart to (item j of myStarts)
set thatSumm to (item j of mySummaries)
if thisSumm is equal to thatSumm and thisStart is equal to thatStart then
set the end of myDeletes to (item j of myUIDs)
exit repeat
end if
end repeat
end repeat
set n to count of myDeletes
tell application "iCal"
repeat with myDel in myDeletes
delete (every event of theCalendar whose uid is myDel)
end repeat
-- set the visible of calendar theCalendar to false
end tell
display dialog (myCopies & " records duplicated, " & myUpdates & " records updated and " & myObsoletes & " obsolete ones deleted") as textNo longer an issue.
-
How I generate index markers using Applescript and tagged text!
One of the challenges I've faced in automating the book making process using Applescript with inDesign is that there don't seem to be any AS commands for making new index markers (anyone please correct me I if I'm wrong about this).
I've tried various js scripts which do an OK job, but they don't make the actual native markers. This means you have to wait until the book (consistiing of multiple ID files) is complete (so that all the page numbers have been established) to generate the index.
Recently, I read a tweet from someone with a link to a technique which uses tagged text and find and replace with GREP to edit the tags, inserting the tagged text index tags in the text file and then re-placing the text file in the ID page. In itself, this works great. But I'm dealing with literally thousands of separate text frames, none of them connected in a story.
The books typically consist of around 1200 pages with almost that many people, each of whose names I need to index with "Lastname, Firstname" references. And those particular strings don't (can't) appear anywhere on the pages. There will also be about 50 ID files all combined into one book. So it is imperative that I have ID generate the native index markers. To help keep things straight and efficient, I'm creating separate small text frames to hold the lastname, firstname strings. I created an object style for these frames which sets the attributes to "nonprinting", and I place the frames in the margin.
Then I realized that I don't actually have to have ID export the tagged text files for each. I exported one prototype and copied its tags to properties in my script, and then I concatenate them with the respective list item values I import from the database.
At the proper point in the page building script, I tell "textwrangleer" to make a new document, set its contents to the index string for the current record, save it to disk, overwriting the previous one, and then tell ID to "place" it in the index text frame, which generates the ID index mark.
I actually got an AS error when I first tried this: "file doesn't exist" or some such. Then I realized that the "place" command was happening too soon, so I inserted a .5 sec delay in the script, and it worked.
This is actually my first major script for actual work, and I'm so excited about it! I promises to cut production time down to about a thenth of what it was.
I still have to add some logic to branch between handlers with slightly different parameters for five different page formats, but the same page building handler will work on all of them.A note on this:
Daniel Swanson wrote:
I've tried various js scripts which do an OK job, but they don't make the actual native markers. This means you have to wait until the book (consistiing of multiple ID files) is complete (so that all the page numbers have been established) to generate the index.
These scripts typically search for words and immediately write out the page numbers they are found on -- one shot indexing.
The solution is to add both the topic and its page reference to the current document's index:
if (app.activeDocument.indexes.length == 0)
app.activeDocument.indexes.add();
app.activeDocument.indexes[0].topics.add(app.selection[0].contents).pageReferences.add(app.selection[0]);
The first lines only make sure there is an index to add to (per default, a new document has none).
The last line adds a selected word to the index (it must be a plain text string, hence the use of its 'contents'), and then adds a reference to the selection in the text itself.
Adding the same word a second time will for a change (quite untypically for ID's Scripting) not result in an error but simply add another page reference to the existing one.
When doing this in a loop: remember to work backwards, because the index marker itself gets inserted into the running text, and that will throw off your text indices. -
Using AppleScript to launch an application on a different machine
Hi there,
I'm trying to use AppleScript to enable a couple of my Macs to talk to each other.
On one machine, I want to use this script:
tell application "Finder" of machine "eppc://user:[email protected]"
launch application "Rivet" of machine "eppc://user:[email protected]"
end tell
to have the other machine launch Rivet, a video server that I can access from the PS3/iPhone/iPad
everything seems to work without issue (i.e. no errors), except it doesn't do anything.
I see a line written to the console on "helium":
9/23/10 18:48:30 com.apple.AEServer[3535] launchproxy[3535]: /System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Versi ons/A/Support/AEServer: Connection from: xxx:xxx:xxx:xxx:xxx:xxx%en0 on port: 60571
every time I run the script on the other machine, but, like I said, nothing else happens.After much searching and trial and error I finally discoverd Hiroto's suggestion from way back in 2001. It is the only solution I have found that actually works to launch/activate any application on a remote Mac using an applescript on a local Mac.
I have one Mac Mini running household control applications Indigo and iRed. I wanted to use embedded AppleScripts in those applications to launch and control PandoraBoy on another MacMini that I use as a media center. I discovered that you cannot activate an application on a remote Mac unless it's already running. (Only God and Apple know why!) And, of course, if you want to launch and application--it's usually NOT running!
But the following works:
set remoteMachine to "eppc://RemoteMachineName:[email protected]"
tell application "Finder" of machine remoteMachine
open ("/Applications/PandoraBoy.app" as POSIX file as alias)
end tell
THANK YOU HIROTO!!!
Once the remote app is actually launched/activated you can then send AppleScript commands to it as follows:
set remoteMachine to "eppc://RemoteMachineName:[email protected]"
using terms from application "PandoraBoy"
tell application "pandoraboy" of machine remoteMachine
playpause
end tell
end using terms from
I have also learned that the application to be controlled on the remote machine must also be present on the local machine and "using terms from" must also be used in the control script for this to work. -
How do I use AppleScript to Change the Creation Date to the Current Date?
I sorted my downloads folder by creation date and found that the items were sorted seemingly randomly. On closer inspection, I saw that the creation dates were not the same as the dates that I downloaded the items, so I figures that Snow Leopard was using the date given to it by the server.
In order to get the items sorted by download date, I figured I'd use Hazel, but it doesn't have a “change creation date” item. It does, however, have an “run AppleScript” item.
So my question is this: how do I use AppleScript to change the creation date of an item to the current date?TC (Techno Cat) wrote:
Okay, I tried changing the creation date with SetFile, but it kept giving me an error:
What am I doing wrong?
Looks like the date and time was not quoted
Try this Applescript. It will change the creation date of every file in the Downloads folder to the current date and time:
<pre style="
font-family: Monaco, 'Courier New', Courier, monospace;
font-size: 10px;
font-weight: normal;
margin: 0px;
padding: 5px;
border: 1px solid #000000;
width: 720px;
color: #000000;
background-color: #E6E6EE;
overflow: auto;"
title="this text can be pasted into the AppleScript Editor">
set current_date_and_time to do shell script "date \"+%m/%d/%Y %H:%M\""
tell application "Finder"
set filelist to every file of the alias (the path to downloads folder as text)
repeat with currentFile in filelist
do shell script "/usr/bin/SetFile -d " & quoted form of current_date_and_time & space & quoted form of POSIX path of (currentFile as string)
end repeat
end tell</pre> -
Problem using "Photo to Movie" and "Toast 8 Titanium" for dvd slideshow
I used photo to movie to compile a 20 minute collection of photos for a relative's funeral. All the files were still photos (no video) but I added 4 songs (that I had in iTunes).
When I go to "create movie", I normally select NTSC for toast, but when I do so toast gives me an error saying "filename.dv is an unsupported format and cannot be imported".
I just went throw this process a day ago for a wedding slideshow (using same computer and workflow) and it worked fine!!! What could be causing this?
I have downloaded all the latest updates of both toast and photo to movie.I finally figured out (after 8 hrs of troubleshooting) that there was one photo in there it didnt like. When I finally found the photo (by process of elimination) and replaced it, everything worked fine. Just wish the error messaging would be more specific to help me locate the problem!
-
Automating Final Cut Express using AppleScript?
Hello,
just another question: is it possible to use AppleScript (or something similar) with Final Cut Express?
And if so, where to find a good reference?
I have some DV movies and a for each a csv containing the In and Out Points for the subclips, including their names and comments about the contained action, date, place, light and so on.
At moment I'm doing everything manually, but that's time killing, so I'm looking for how to automate this.
Thank you.Comma Separated Values (see http://tools.ietf.org/html/rfc4180).
In other words: a machine readable table sheet.
Maybe you are looking for
-
Hello. I have synced my iPhone 4S with iTunes and I got an error while copying one movie. Now this movie shows up grayed out in videos on the iPhone but NOT in iTunes. Hence, I cannot delete this partially copied movie from my iPhone. And since it
-
hello all, i need to take the following data ekko(ebeln),ekpo(ebelp),ekko(ernam),ekkn(ps_psp_pnr),vbap(posnr),bseg(kostl). how to join the tables. actually for my report the input is PO No. and the output needs to be Status of PO,Item number,Status o
-
How to write into generated HTML " " etc.?
Hi! I use xmlparser_v2_0_2_6 for JAVA2 Solaris7. When I declare ENTITY as: <!ENTITY nbsp "#xA0;"> write into generated HTML symbol (code=#xA0), but I need " " string. Intuitivity I can declare ENTITY as: <!ENTITY nbsp " ">, but it is not work. W
-
I first used adobe signature, and then signed with other PDF reader, is a way to save incremental updates, but when use adobe to verification the first signature, It said the file has been damaged. this test file url is : http://d.pcs.baidu.com/file
-
The website I go to was always working before with cams, and I was just there before the update. After Firefox did the update the cams would not work anymore - neither mine nor any others. It is blank. How do I fix this or go back to the old Firefox