4

古いスクリプトを実行しようとしましたが、10.9 の更新後に壊れました。次のコードを使用して、システムイベントでファイルを移動していました。

set Somefilepath to "Design_005_HD:Users:Design_005:Desktop:Start:TextFile.txt"
set somefolderpath to "Design_005_HD:Users:Design_005:Desktop:End:"

tell application "System Events"
move file (Somefilepath) to folder (somefolderpath)
end tell

これで、次のエラーが表示されます。

エラー「システム イベントでエラーが発生しました: ファイル \"Design_005_HD:Users:Design_005:Desktop:Start:TextFile.txt\" を整数型にできません。」ファイル "Design_005_HD:Users:Design_005:Desktop:Start:TextFile.txt" から数値 -1700 を整数に

交換してファインダーを使用できることは知っていますが、使用していません。機能しなくなった変更点は何ですか?

2014 年 4 月 2 日更新

ファイル/フォルダーの場所をシステムイベントに与えるあらゆる方法でこれを試しましたが、機能しません。それを機能させることができないのは私だけではないことを嬉しく思います。回答が見つかった場合、または機能する更新が行われた場合は、この投稿を更新します。

2014 年 4 月 3 日更新

これは、システム イベントがファイルを移動できないという単なるバグのようです。ここhttp://bugreport.apple.com/で報告しましたが、他の人も報告する必要があります。

私のコードを心に留めないでください。それは、私がそれを機能させることができなかったときに物事が終わったところです。私は 10.8.5 用の作業コードを持っています。これは、上に表示されているものから、システム イベントの Tell ブロッ​​クのフォルダー タグを除いたものです。フォルダータグなしで機能する理由はわかりませんが、機能します。複数のコンプでテスト済み。壊れていない場合は、大騒ぎしないでください。それに気づき、次に進みました。

2014 年 10 月 20 日更新

興味のある方へ。チケットがクローズ/解決されたことを示す電子メールを受け取りました。そのため、マーベリックスは永遠に壊れることはありませんが、ヨセミテが出てきたときに光があるかもしれません.

4

3 に答える 3

3

一般に、Applescript は、スラッシュで区切られたパス (/) ではなく、コロンで区切られたパス (:) で動作します。一部のアプリケーションはスラッシュで動作しますが、すべてのプログラムはコロンで動作するため、一般的に言います。コロンパスがどのように見えるかの例については、このコードを試して結果を見てください...

set colonPath to (path to desktop as text) & "untitled folder 2:"

最初に、スラッシュをコロン スタイルに変換します。

また、applescript にとって、これらはパスではなく単なる文字列です。Applescript にそれらがパスであることを理解させるために、いくつかのことを行うことができます。最初に、必要に応じて単語ファイルまたはフォルダーをそれらの前に追加できます。コードで、ファイル文字列の前に「ファイル」を使用していることに気付きましたが、フォルダー文字列の前に「フォルダー」を使用していません。だからそれを試してください。次に、文字列がファイルであろうとフォルダであろうと、文字列の前に「エイリアス」を使用できます。他にも方法はありますが、ここまでにしておきます。これらの方法のいずれかが機能するはずです。

更新: 上記のすべてが述べられているように、10.9 のシステム イベントにはまだ移動コマンドに関する問題があるようです。そのため、ここに 2 つの代替案があります。それがあなたが使用しているものなので、スラッシュスタイルのパスを使用しました。

set somefilepath to POSIX file "/Users/Design_005/Desktop/Start/TextFile.txt"
set somefolderpath to POSIX file "/Users/Design_005/Desktop/End"

tell application "Finder"
    move somefilepath to somefolderpath
end tell

また

set somefilepath to "/Users/Design_005/Desktop/Start/TextFile.txt"
set somefolderpath to "/Users/Design_005/Desktop/End"

do shell script "mv " & quoted form of somefilepath & space & quoted form of somefolderpath

幸運を。

于 2014-04-01T18:06:32.150 に答える
1

そんなことはできません。システム イベントは、削除して開くことはできますが、移動することはできません。他の誰かが将来の OS でより良い答えを見つけるのに役立つ場合の簡単な例を次に示します。システム イベントは、削除やオープンとは異なる方法で移動を処理するようです。

tell application "System Events"
    set myFile to file "Macintosh HD:Users:velma:Desktop:Test.png"
    set myFolder to folder "Macintosh HD:Users:velma:Desktop:Test"

    --delete works! with both type “file/folder” and type “disk item”
    --delete myFile
    --delete myFolder

    --open works!
    open myFile
    open myFolder

    --move fails!
    move myFile to myFolder
end tell

この場合、返されるエラーは「ファイルを取得できません」、番号 -1728 です。

于 2014-04-01T22:03:07.720 に答える