web-dev-qa-db-ja.com

Applescriptファイルを新しいフォルダにコピーします

指定したファイルを1つのフォルダから新しく作成したフォルダにコピーするAppleSriptを作成する必要があります。

これらのファイルは、AppleScriptエディタで次のように指定する必要があります。

start

fileToBeMoved = "Desktop/Test Folder 1/test.doc"
newfoldername = "Test Folder 2"

make newfolder and name it 'newfoldername'
copy 'fileToBeMoved' to 'newfolder'

end
10
user111595

一般的に:

tell application "Finder"
  make new folder at alias "Macintosh HD:Users:user:Desktop:" with properties {name:"Test Folder 2"}
  copy file "Macintosh HD:Users:user:Desktop:Test Folder 1:test.doc" to folder "Macintosh HD:Users:user:Desktop:Test Folder 2"
end tell

POSIXファイルとパスを表す変数名を追加できます。

明らかに、コロン文字(:)は、フォルダおよびファイル名用に予約された文字です。

set desktopFolder to "Macintosh HD/Users/user/Desktop/"
set desktopFdrPosix to quoted form of POSIX path of desktopFolder
set newFolderName to "Test Folder 2"
set destinationFdrPosix to quoted form of desktopFdrPosix & POSIX file newFolderName
set sourceFilename to "Test Folder 1/test.doc"
set sourceFnPosix to quoted form of desktopFdrPosix & POSIX file sourceFilename

tell application "Finder"
  make new folder at alias desktopFdrPosix with properties {name:newFolderName}
  copy file sourceFnPosix to folder destinationFdrPosix
end tell    

宛先フォルダがすでに存在する場合は、エラーチェックを追加することもできます。

11
Alex Reynolds

AppleScriptの秘訣は、ファイルの移動がエイリアスを使用して行われることです。

より現実的には、Automatorなどを使用している場合は、do Shell scriptを使用してAppleScriptから実行できるシェルスクリプトを作成する方が簡単な場合があります。

#!/bin/sh

fileToBeMoved="$HOME/Desktop/Test Folder 1/test.doc"
newFolderName="Test Folder 2"
mkdir "$newFolderName"
cp -a "$fileToBeMoved" "$newFolderName"
5
Chealion
set home_path to path to home folder as string
set work_folder to alias (home_path & "AutomationAppleScript:ScreenShots:")
tell application "Finder"
    duplicate every file of work_folder to folder "Archive" of home
end tell
3
Sumanjit Saha

これは、マウントされたネットワークボリュームにコピーする場合に機能します。

    mount volume "afp://compname.local/mountpoint"
    tell application "Finder"
      duplicate file "MyTextFile.txt" of folder "Documents" of home to disk "mountpoint"
      eject "mountpoint"
    end tell
1
Wilersh

探している同期の場合は、AppleScriptで次のシェルスクリプトを実行できます。

rsync -a /Users/username/folderToBeCopiedFrom /Volumes/folderToBeCopiedTo/

0
SashaZd

Chealionsシェルスクリプトソリューションを使用しました。スクリプトファイルを次のコマンドで実行可能にすることを忘れないでください:Sudo chmod u+x scriptFilename

また、変数割り当ての=記号の間のスペースを削除します。スペースでは機能しません。例:newFolderName="Test Folder 2"

0
tell application "Finder"
    make new folder at desktop with properties {name:"folder"}
    duplicate POSIX file "/usr/share/doc/bash/bash.html" to result
end tell

POSIX file ((system attribute "HOME") & "/Documents" as text)
tell application "Finder" to result

tell application "Finder" to duplicate (get selection) to desktop replacing yes

-- these are documented in the dictionary of System Events
path to home folder
POSIX path of (path to documents folder)
path to library folder from user domain
path to desktop folder as text

-- getting files as alias list is faster
tell application "Finder"
    files of entire contents of (path to preferences folder) as alias list
end tell
0
Lri

それを行う簡単な方法は以下のとおりです

set home_path to path to home folder as string
set work_folder to alias (home_path & "AutomationAppleScript:ScreenShots:")
tell application "Finder"
    duplicate every file of work_folder to folder "Archive" of home
end tell
0
Michael Sanders