2014-03-02 123 views
0

如何獲取當前腳本的ID或文件夾ID?我希望能夠將腳本複製到文件夾中,並使其運行在特定於該文件夾的文件夾/文件上,而無需手動查找文件夾ID。在Google Apps腳本中獲取腳本的文件夾ID

我試過像'this.getParents()'但沒有得到任何地方的東西。在此先感謝您的幫助!

回答

0

這裏是一個腳本,我在不久前寫了一個基於上answer from CoreyG,做你正在尋找正是爲和更多的只是有點...

function getScriptFolderTree() { 
    var thisScript = getThisScriptInDrive(); 
    var names = []; 
    var Ids = []; 
    var folder = thisScript.getParents()[0]; 
    while (folder.getName() != "Root"){ 
     names.unshift(folder.getName()); 
     Ids.unshift(folder.getId()); 
     var parents = folder.getParents(); 
     var folder = parents[0]; 
    } 
    Logger.log('Root/'+names.join().replace(/,/g,'/')); 
    Ids.unshift(DocsList.getRootFolder().getId()); 
    Logger.log(Ids) 
} 


function getThisScriptInDrive() { 
    return DocsList.find("poiuytrezazertyujhgfdsdcvcxyydryfhchfh")[0]; 
} 
+0

嗯。有用,但不完全是我所希望的。你必須仔細檢查每一個副本並更改'垃圾'字符串。另外,在開始工作之前似乎有一段延遲。我認爲這是可行的,但有點黑客,並延遲了幾分鐘。 – nate11000

+0

如果您每次複製腳本時都必須手動對腳本字符串進行硬編碼,那麼也可以硬編碼文件夾ID。 –

+0

就我個人而言,我不認爲它是毫無意義的:-)即使文件移動到另一個地方,它也會返回文件夾樹...但我承認在這個特定的用例中它並不理想。另一方面,發佈它,沒有其他方式獲得該ID。 –

0

即使世界目前還沒有辦法。 爲什麼不讓第一次運行時要求用戶選擇要在(filepicker)上運行的文件夾並將其保存在腳本屬性中?

相關問題