0

私は自分の仕事のためにこのプロジェクトに取り組んでいます。これには、コンピューターからサーバーの 1 つに選択した情報をバックアップすることが含まれます。これまでにいくつかの質問を投稿し、貴重な助けをたくさん得ました。私が遭遇した現在のバグは、複数のエラーを含む選択を複製しようとしたときです。1 つのフォルダーを複製しようとすると問題なく動作しますが、複数のフォルダーを複製するとうまくいきません。コードは以下です

display dialog "Please enter your augnet username" default answer "username"
set username to (text returned of result)

set server to "smb://orgs.augsburg.edu"

try
    mount volume server
on error
    display dialog "Either you are already connected, or there was a problem reaching the server. Please disconnect and try again."
end try

delay 3

tell application "Finder"
    set backup to make new folder at folder "ORGS:Information Technology:www:kb_images:Migration Testing:" with properties {name:username}
end tell

set theSelection to choose folder with prompt "Please select what you would like to transfer" with multiple selections allowed

tell application "Finder" to duplicate folder theSelection to backup

複数のフォルダを選択する際に、あなたの助けを借りていただければ幸いです。

4

1 に答える 1

1

このchoose folder … with multiple selections allowedコマンドは、フォルダーを指すエイリアスオブジェクトのリストを返します (もちろん、キャンセルされない限り)。repeatループでそのリストを反復するだけです:

set selectedFolders to choose folder with prompt "Yadda" with multiple selections allowed
repeat with selectedFolder in selectedFolders
    -- do something with the folder
end repeat

一般的に言えば、コマンドが何を返すかわからない場合は、コマンドを実行して、AppleScript エディタの結果ウィンドウで出力を確認してください。あなたの場合、次のようになります。

AppleScript エディタのコマンドと出力

– これは、知っておく必要があることをすべて示しています: 返されるデータはリスト (中括弧と で囲まれています{)であり、HFS パスによって示されるエイリアス}オブジェクトが含まれています。ループなどの基本については、Applescript Language Guide (AppleScript Editor のヘルプ メニューからアクセスできます) に必要な詳細がすべて記載されています。

最後に、コピー操作には Finder ではなくSystem Eventsを使用することをお勧めします。これは、高速でバックグラウンドで動作するためです。

于 2012-05-22T15:33:39.773 に答える