Rename files excluding xml extension in a folder
Rename files excluding xml extension in a folder
- Subject: Rename files excluding xml extension in a folder
- From: "Peter Pq" <email@hidden>
- Date: Wed, 16 May 2007 15:03:30 -0400
I am new to applescripting and hoping some one could help me on one
issue with the below script.
I wish to be able to rename all files in a folder chosen by the user
but not allow the extensions to be changed.
The folder will contain files comprised of two different extensions.
However, I wish to exclude the script from renaming files with the
.xml extension.
Is it possible to rename all files in a chosen folder except those
with the xml extension?
Please help
Thank you so much
Peter
Script:
display dialog "Welcome to file rename application." buttons
{"Cancel", "Run"} default button 2
set the source_folder to choose folder with prompt "Navigate to folder:"
display dialog "For File Names click button below:" buttons {"File
Names"} default button 1
set the search_parameter to the button returned of the result
repeat
display dialog "Enter text to find in the current file names."
default answer "" buttons {"Cancel", "OK"} default button 2
set the search_string to the text returned of the result
if the search_string is not "" then exit repeat
end repeat
repeat
display dialog "Enter replacement text:" default answer "" buttons
{"Cancel", "OK"} default button 2
set the replacement_string to the text returned of the result
if the replacement_string contains ":" then
beep
display dialog "A file or folder name cannot contain a colon (:)."
buttons {"Cancel", "OK"} default button 2 with title "XDCAM Renamer"
else if the replacement_string contains "/" then
beep
display dialog "A file or folder name cannot contain a forward slash
(/)." buttons {"Cancel", "OK"} default button 2 with title "XDCAM
Renamer"
else
exit repeat
end if
end repeat
display dialog "Replace "" & the search_string & "" with "" & the
replacement_string & "" in every item name?" buttons {"Cancel", "OK"}
default button 2
set the item_list to list folder source_folder without invisibles
set source_folder to source_folder as string
repeat with i from 1 to number of items in the item_list
set this_item to item i of the item_list
set this_item to (source_folder & this_item) as alias
set this_info to info for this_item
set the current_name to the name of this_info
set change_flag to false
if the current_name contains the search_string then
if the search_parameter is "Folder Names" and ¬
folder of this_info is true then
set the change_flag to true
else if the search_parameter is "File Names" and ¬
folder of this_info is false then
set the change_flag to true
else if the search_parameter is "Both" then
set the change_flag to true
end if
if the change_flag is true then
-- replace target string using delimiters
set AppleScript's text item delimiters to the search_string
set the text_item_list to every text item of the current_name
set AppleScript's text item delimiters to the replacement_string
set the new_item_name to the text_item_list as string
set AppleScript's text item delimiters to ""
my set_item_name(this_item, new_item_name)
end if
end if
end repeat
beep 2
on set_item_name(this_item, new_item_name)
tell application "Finder"
--activate
set the parent_container_path to (the container of this_item) as text
if not (exists item (the parent_container_path & new_item_name)) then
try
set the name of this_item to new_item_name
on error the error_message number the error_number
if the error_number is -59 then
set the error_message to "This name contains improper characters,
such as a colon (:)."
else --the suggested name is too long
set the error_message to error_message -- "The name is more than
31 characters long."
end if
--beep
tell me to display dialog the error_message default answer
new_item_name buttons {"Cancel", "Skip", "OK"} default button 3
copy the result as list to {new_item_name, button_pressed}
if the button_pressed is "Skip" then return 0
my set_item_name(this_item, new_item_name)
end try
else --the name already exists
--beep
tell me to display dialog "This name is already taken, please
rename." default answer new_item_name buttons {"Cancel", "Skip", "OK"}
default button 3
copy the result as list to {new_item_name, button_pressed}
if the button_pressed is "Skip" then return 0
my set_item_name(this_item, new_item_name)
end if
end tell
end set_item_name
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users
This email sent to email@hidden