5

フォルダー内のすべてのファイルをルートフォルダーに移動して、すべてのサブフォルダーを含めるスクリプトを作成しようとしています。ルートフォルダーに移動するだけで、新しいフォルダーを作成したくありません。

フォルダーを選択して、その特定のフォルダーのみでアクションを完了できるようにしたい。

その理由は整理のためです。私の正確な状況では、1 TB を超える映画があり、フォルダー内のフォルダー内にファイルがあります。これらすべてのファイルをルート フォルダーに配置して、適切と思われる方法で整理できるようにします。また、調査の結果、最善の方法であると確信したため、移動する代わりにコピーして削除したいと思います。

スクリプトを機能させることはできませんでしたが、探しているものを正確に実行するワークフローへのリンクを見つけました。

http://www.macworld.com/article/1160660/automator_filesfromsubfolders.html


履歴の目的でこのセクションを保持する上で更新しました。この点線の間のすべては、編集後に削除したものです

以下のこのスクリプトをリバースエンジニアリングしようとしましたが、見つけたのですが、思い通りに動作させることができません。私はスクリプティングに非常に慣れていないので、岩に来ました。

2回目の試行は、アプリケーション「ファインダー」にmain_folderを設定する(「メインフォルダーを選択する」というプロンプトでフォルダーを選択する)ように指示するサブフォルダーをmain_folderのフォルダーに設定するsub_folderのeach_folderを使用して繰り返します(each_folderのすべてのファイル)をmain_folderに移動し、endを置き換えて繰り返しtry end try end教えて

1回目の試みは、アプリケーション「Finder」がsourceFolderをフォルダー「MOVE ME」に設定したことを伝えます-ディスク「何とか」の、など my moveFilesFrom(sourceFolder) end tell

on moveFilesFrom(thisFolder) アプリケーションに指示します filesToMove を thisFolder のすべてのファイルに設定します filesToMove の aFIle を使用して繰り返します filesToMove で aFIle をフォルダー destFolder に移動します end 繰り返し subFolders を (thisFolder のすべてのフォルダー) に設定します subFolders の aFolder を使用して繰り返しますend tell end moveFilesFrom

多くの情報とサブフォルダーを含むフォルダーで使用すると、ファインダーがタイムアウトします。昨日テストフォルダーで使用したところ、問題なく動作しましたが、大幅に小さくなりました。

adayzdone が提供するこのスクリプトを使用しています

    set myFolder to (choose folder with prompt "choose the main folder")
    tell application "Finder"
    set myfiles to get every item of (entire contents of folder myFolder) whose kind ≠ "Folder"
    move myfiles to myFolder
    end tell

4

3 に答える 3

1

次のようなことを試すことができます:

set myFolder to (path to desktop as text) & "testFolder"
tell application "Finder"
    set myFiles to get every item of (entire contents of folder myFolder) whose kind ≠ "Folder"
    move myFiles to myFolder
end tell

または、Lri が提案したようなシェル スクリプトを使用できます。

set myFolder to quoted form of (choose folder with prompt "choose the main folder")'s POSIX path
do shell script "cd " & myFolder & "; find . -type f -exec mv {} " & myFolder & " \\;"
于 2012-09-09T13:15:26.753 に答える
0

フォルダには次のentire contents属性があります。

tell application "Finder"
    set f to choose folder
    move files of entire contents of f to f
end tell

findシェルで使用することもできます:

cd ~/Movies/Folder/; find . -type f -exec echo mv '{}' . \;
于 2012-09-09T13:18:18.603 に答える