我试图遍历标准化的子文件夹结构,以检查每个子文件夹结构中是否都有特定的文件类型。我进行了小规模的测试,以确保我能够实现对文件夹的适当搜索,并指出是否存在特定的文件类型。我能够准确地用脚本进行检查。然后,我编写了一个for循环,迭代大约250个文件夹来执行这些检查,但是文件搜索似乎不再有效。For循环的其他部分按预期工作,例如列出所有文件夹名,但随后每个单元格都填充一个"x“表示错误。
我已经尝试找出了为什么当搜索在for循环中时,它不再像预期的那样运行,但无法找到它。
用于单个文件搜索的脚本:
function subfolderIterator(){
let FolderID = 'XXXX'
let testSpreadsheet = SpreadsheetApp.openById('XXXXXX')
try {
let studioFourQuery = DriveApp.getFolderById(FolderID)
> .getFoldersByName('04 | Studio-4').next().searchFiles("fullText contains '.tfs'").next()
if (studioFourQuery){
testSpreadsheet.getRange("Audit!D2").setValue('√')
> }
> }
catch (e){
testSpreadsheet.getRange("Audit!D2").setValue('X')
> }
try {
let studioFiveQuery = DriveApp.getFolderById(FolderId)
> .getFoldersByName('05 | Studio-5')
> .next().searchFiles("fullText contains '.tfs'").next()
if (studioFiveQuery){
testSpreadsheet.getRange("Audit!E2").setValue('√')
> }
> }
catch (e){
testSpreadsheet.getRange("Audit!E2").setValue('X')
> }
> }
> 脚本与for循环,将我的电子表格中的所有值设置为"x“。同样,脚本正确地列出了所有文件夹名:
>
function FileSearchLoop(){
let clientFolder05ID = 'xxxx'
let subNames = DriveApp.getFolderById(clientFolder05ID).getFolders()
let myarr = []
while (subNames.hasNext()){
let ids = subNames.next().getId()
> //Logger.log(ids)
myarr.push(ids)
> //Logger.log(myarr)
> }
Logger.log(myarr)
let testSpreadsheet = SpreadsheetApp.openById('xyz')
for(i=0;i < myarr.length; i++){
let lr = testSpreadsheet.getSheetByName('Audit').getLastRow()
let allClientFolderNames = DriveApp.getFolderById(myarr[i]).getName()
testSpreadsheet.getSheetByName('Audit').getRange(lr+1,1).setValue(allClientFolderNames)
try {
let studioFourQuery = DriveApp.getFolderById(myarr[i]).getFoldersByName('04 | Studio-4').next().searchFiles("fullText contains '.tfs'").next()
Logger.log(studioFourQuery)
if (studioFourQuery){
testSpreadsheet.getSheetByName('Audit').getRange(lr+1,4).setValue('√')
> }
> }
catch (e){
> //testSpreadsheet.getRange("Audit!D2").setValue('X')
testSpreadsheet.getSheetByName('Audit').getRange(lr+1,4).setValue('X')
Logger.log(e)
> }
try {
let studioFiveQuery = DriveApp.getFolderById(myarr[i]).getFoldersByName('05 | Studio-5').next().searchFiles("fullText contains '.tfs'").next()
if (studioFiveQuery){
testSpreadsheet.getRange(lr+1,5).setValue('√')
> }
> }
catch (e){
testSpreadsheet.getRange(lr+1,5).setValue('X')
> }
> }
> }任何帮助都是非常感谢的!
发布于 2022-12-01 17:34:46
如果你发现了这个异常,你可能会得到答案。
catch (e){
Logger.log(e) // add this
testSpreadsheet.getRange(lr+1,5).setValue('X')
}https://stackoverflow.com/questions/74637283
复制相似问题