2017-08-02 7 views
1

私は最近AppleScriptを開始し、ゆっくりとスクリプトに入り、私が遭遇したブロックで誰かが私を助けてくれることを願っています。いくつかのことを試し、周りを動かして識別子を変更するが、私は何を探して変えなければならないのか分からない。誰かが私を助けて、私の欠陥を説明するのを助けることができます。AppleScript:エラー-15267外部へのコピー

バックグラウンドストーリー:ユーザーアカウントのホームフォルダを外部ドライブにバックアップするスクリプトをテストしようとしています。

私が最初に持っているもの:ドライブがコンピュータに接続されていることを確認するドライブの確認。送信元と送信先を設定します。次に、if then文をコンパイルして2つのフォルダを1つだけコピーしようとしましたが、私はコピーしたくありません(ユーザフォルダのみに焦点を当てていますが、正しいかどうかは分かりません。重複したコマンドでエラーが表示されます。「Finderにエラーがあります:同じ名前のアイテムが既にこの場所にあります。」しかし、外部には何もないので、私は他に何をすべきかわからない。どんな助言も役に立つでしょう。

は、これは私がして起動する必要がありますコードです:

tell application "System Events" to set diskNames to name of every disk 

if "Untitled" is in the diskNames then 
    display dialog "Disk is mounted" buttons {"OK"} default button 1 with icon 1 
else 
    display dialog "No disk found" buttons {"OK"} default button 1 with icon 1 
end if 

tell application "Finder" 

    set source_folder to "Macintosh HD:Users:" 
    set tar_disk to "Untitled:" 

    if source_folder is not {"administrator", "Shared"} then 
     with timeout of 3600 seconds -- 2 hours 
      duplicate source_folder to tar_disk 
     end timeout 
    else 
     display dialog "No folder detected" buttons {"OK"} default button 1 with icon 1 
    end if 
end tell 

答えて

0

あなたはファインダーで唯一、独自のホームフォルダをコピーすることができます、あなたは他のホームフォルダをコピーする権限がありませんユーザー(Sharedを除く)。

基本的には現在のホームフォルダを指しhomeプロパティがありますので、あなたが

tell application "Finder" 
    set tar_disk to disk "Untitled" 

    with timeout of 3600 seconds -- 2 hours 
     duplicate home to tar_disk 
    end timeout 

end tell 
を書くことができます

例えば、ファイル、フォルダ、ディスクを表すリテラル文字列にファインダー指定子を追加する
set tar_disk to disk "Untitled" 

良い習慣です

重要な警告があります:Finderは表示されているファイルとフォルダのみをコピーします。 AppleShowAllFilesがfalseに設定されている場合、ドットで始まるすべてのファイルは無視されます。ホームフォルダ全体をコピーするには、シェルのようなものrsyncコマンドを使用することをお勧めします。

+0

ありがとうございました!心から感謝する。このようなスクリプトを最初に試してみたいと思っていました。 rsyncは私が同じ目的のために次に働くことです。再度、感謝します! –

関連する問題