0

IFTTT レシピを使用してドキュメントを作成しています。編集後、別のフォルダーに移動して他のドキュメントと区別できるようにしたいと考えています。

どうすればいいですか?それを追加すると変更としてカウントされるので、2回目の編集はありますか?

を見ていましたonedit()が、使い方がわかりませんでしたし、任意/すべてのドキュメントで機能させる方法もわかりませんでした(1つのフォルダー内のすべてのファイルをチェックできましたが、Googleを使用するのはこれだけですドライブするので、どのフォルダも機能します)。

4

2 に答える 2

1

力ずくの方法は、作成日時と最後の編集日時を比較してファイルを反復処理する関数を作成することです。これは、ファイルクラスのメソッドを介しgetDateCreated()て利用できます。かなりの数のファイルがある場合は、ファイル数の制限とページングされたリクエストの処理について読んでください。関数は、GASスクリプトが実行される通常の方法のいずれかを使用して実行できます。関数が機能するようになったら、時間駆動型トリガーを手動で作成すると、必要な頻度で自動的に実行されます。getLastUpdated()

gDriveでは、「フォルダ」は実際にはファイルに関連付けられたタグの種類の表示規則です。Gmailラベルと同様に、dDriveフォルダーはネストでき、1つのファイルを同時に複数のフォルダーに「入れる」ことができます。以下は、ファイルをフォルダーに追加しても、最後に更新された日付/タイムスタンプが変更されないことを証明するための小さな関数です。ファイルの「移動」は、機能的には、あるフォルダーにファイルを追加したり、別のフォルダーからファイルを削除したりすることと同じです。

function FileEditTagTest() {
  var start = 1
  var max = 1
  var files = DocsList.getAllFiles(start, max)        //get array with one arbitrar file
  var id = files[0].getId()                           //get the file's ID
  var file = DocsList.getFileById(id)                 //get the file object
  Logger.log("Name:        " + file.getName())        //log the file's name
  Logger.log("LastUpdate:  " + file.getLastUpdated()) //log the file date-time before adding it to a new folder
  var folderName = 'TagTest' + new Date();            //generate a unique folder name. Current date is used for convenient uniquness
  var root = DocsList.getRootFolder()                 //get the root folder for the user
  var folder = root.createFolder(folderName)          //create a new folder
  file.addToFolder(folder)                            //assign the folder to the file (aka "put the file there")
  Logger.log("FolderName:  " + folderName)            //log the folder name
  Logger.log("LastUpdate:  " + file.getLastUpdated()) //log the file date-time after adding it to a new folder
}

この関数を実行すると、ログは次のようになります。最後の更新の2つのエントリがどのように同一であるかに注意してください。

Name:        YourFileNameHere
LastUpdate:  Fri Mar 15 2013 15:32:42 GMT-0600 (CST)
FolderName:  TagTestFri Mar 15 2013 18:50:37 GMT-0600 (CST)
LastUpdate:  Fri Mar 15 2013 15:32:42 GMT-0600 (CST)
于 2013-03-16T01:19:36.783 に答える
0

スプレッドシート (?) ではなく、テキスト ドキュメントについて話していると思います。OnEdit はスプレッドシートに適用されるため、ユース ケースでは機能しません。さらに、スクリプトをテキストドキュメントにバインドする方法はありません...私が想像できる唯一の方法は、ドキュメントのアクティビティを監視し、新しいドキュメントが作成され、最終的に作成されたかどうかを検出しようとするスタンドアロンスクリプトを使用することです編集中ですが、その方法もわかりません。

「編集後」と言う のは、IFTTT サービスによって作成された後、手動で編集するということですか? それは限られた/定義されたタイムラプスで起こりますか?

タイミングがそれほど重要でない場合は、おそらく、ドライブを検査し、特定の基準に対応するファイルを別のフォルダーに移動する、タイマーでトリガーされる監視スクリプトを想像できます...

申し訳ありませんが、より適切なアドバイスが必要な場合は、処理中にこれらのドキュメントに何が起こっているかについて、より詳細な情報を提供していただく必要があります。(かなり「あいまいな」回答で申し訳ありません)

于 2013-03-15T22:03:32.220 に答える