为什么我的 Google Apps 脚本不再起作用?
Why doesn't my Google Apps Script work anymore?
我不相信我更改了我的代码,但它不再起作用了。 Apps 脚本是否改变了什么?我启用了 Drive API 并尝试了旧版编辑器和新版编辑器。
我正在尝试替换文件夹中多个 Google 文档中的链接。下面是代码片段,但我有 50 多个链接。
function myFunction() {
var oldLinkText = "Casarett and Doull’s Essentials of Toxicology, 3e";
var newLinkText = "Casarett & Doull’s Essentials of Toxicology, 4e";
var oldLinkURL = "accesspharmacy.mhmedical.com/book.aspx?bookID=1540";
var newLinkURL = "accesspharmacy.mhmedical.com/Book.aspx?bookid=3000";
var oldLinkText2="Harrison's Principles of Internal Medicine, 19e";
var newLinkText2="Harrison's Principles of Internal Medicine, 20e";
var oldLinkURL2="accessmedicine.mhmedical.com/book.aspx?bookid=1130";
var newLinkURL2="accessmedicine.mhmedical.com/book.aspx?bookid=2129";
var oldLinkText3="Behavioral Medicine: A Guide for Clinical Practice, 4e";
var newLinkText3="Behavioral Medicine: A Guide for Clinical Practice, 5e";
var oldLinkURL3="accessmedicine.mhmedical.com/book.aspx?bookID=1116";
var newLinkURL3="accessmedicine.mhmedical.com/book.aspx?bookid=2747";
var files = DriveApp.getFolderById("folderID").getFilesByType(MimeType.GOOGLE_DOCS);
while (files.hasNext()) {
var file = files.next();
if(file){
var doc = DocumentApp.openById(file.getId());
var link=doc.getBody().findText(oldLinkText);
var link2=doc.getBody().findText(oldLinkText2);
var link3=doc.getBody().findText(oldLinkText3);
}
}
if(link){
link=link.getElement().asText();
link.setLinkUrl(newLinkURL);
doc.replaceText(oldLinkText, newLinkText);
}
if(link2){
link2=link2.getElement().asText();
link2.setLinkUrl(newLinkURL2);
doc.replaceText(oldLinkText2, newLinkText2);
}
if(link3){
link3=link3.getElement().asText();
link3.setLinkUrl(newLinkURL3);
doc.replaceText(oldLinkText3, newLinkText3);
}
Logger.log("Done")
}
我在一个文件上使用了代码并且它有效,但我试图让它在 Google Drive 文件夹中的多个 Google Docs 文件上工作。它一直停在一个。换句话说,它会查看文件夹中的第一个文件,如果找不到该文件中的文本,就会停止查找。它忽略了 Google Drive 文件夹中的其他文件。
我更改了代码中的两处内容,现在可以使用了。我删除了“if(link){”之前的两个大括号,并将它们放在代码的最后。我还更改了“.getFilesByType(MimeType.GOOGLE_DOCS);”只是“.getFiles();”
我不相信我更改了我的代码,但它不再起作用了。 Apps 脚本是否改变了什么?我启用了 Drive API 并尝试了旧版编辑器和新版编辑器。
我正在尝试替换文件夹中多个 Google 文档中的链接。下面是代码片段,但我有 50 多个链接。
function myFunction() {
var oldLinkText = "Casarett and Doull’s Essentials of Toxicology, 3e";
var newLinkText = "Casarett & Doull’s Essentials of Toxicology, 4e";
var oldLinkURL = "accesspharmacy.mhmedical.com/book.aspx?bookID=1540";
var newLinkURL = "accesspharmacy.mhmedical.com/Book.aspx?bookid=3000";
var oldLinkText2="Harrison's Principles of Internal Medicine, 19e";
var newLinkText2="Harrison's Principles of Internal Medicine, 20e";
var oldLinkURL2="accessmedicine.mhmedical.com/book.aspx?bookid=1130";
var newLinkURL2="accessmedicine.mhmedical.com/book.aspx?bookid=2129";
var oldLinkText3="Behavioral Medicine: A Guide for Clinical Practice, 4e";
var newLinkText3="Behavioral Medicine: A Guide for Clinical Practice, 5e";
var oldLinkURL3="accessmedicine.mhmedical.com/book.aspx?bookID=1116";
var newLinkURL3="accessmedicine.mhmedical.com/book.aspx?bookid=2747";
var files = DriveApp.getFolderById("folderID").getFilesByType(MimeType.GOOGLE_DOCS);
while (files.hasNext()) {
var file = files.next();
if(file){
var doc = DocumentApp.openById(file.getId());
var link=doc.getBody().findText(oldLinkText);
var link2=doc.getBody().findText(oldLinkText2);
var link3=doc.getBody().findText(oldLinkText3);
}
}
if(link){
link=link.getElement().asText();
link.setLinkUrl(newLinkURL);
doc.replaceText(oldLinkText, newLinkText);
}
if(link2){
link2=link2.getElement().asText();
link2.setLinkUrl(newLinkURL2);
doc.replaceText(oldLinkText2, newLinkText2);
}
if(link3){
link3=link3.getElement().asText();
link3.setLinkUrl(newLinkURL3);
doc.replaceText(oldLinkText3, newLinkText3);
}
Logger.log("Done")
}
我在一个文件上使用了代码并且它有效,但我试图让它在 Google Drive 文件夹中的多个 Google Docs 文件上工作。它一直停在一个。换句话说,它会查看文件夹中的第一个文件,如果找不到该文件中的文本,就会停止查找。它忽略了 Google Drive 文件夹中的其他文件。
我更改了代码中的两处内容,现在可以使用了。我删除了“if(link){”之前的两个大括号,并将它们放在代码的最后。我还更改了“.getFilesByType(MimeType.GOOGLE_DOCS);”只是“.getFiles();”