我在google drive里的文件都是大写的,我想把它们全部改名为小写。
例子:
ZVXDA0002-ZPOILTY024(full).xml should be renamed as zvxda002-zpoilty024(full).xml
以下是我试过的脚本
function FileRenaming() {
var SourceFolder = DriveApp.getFolderById("Test_rename")
var Files = SourceFolder.getFiles();
while(Files.hasNext()) {
var file = Files.next();
var FileRename = file.makeCopy(file.getName());
var DestinationFolder = DriveApp.getFolderById("Test_renameD")
DestinationFolder.addFile(FileRename);
SourceFolder.removeFile(file);
}
}
返回
Exception: Unexpected error while getting the method or property getFolderById on object DriveApp. (line 2, file "Code")Dismiss
DriveApp.getFolderById()
期待一个ID,而不是一个名字DriveApp.getFoldersByName(name)
而是DriveApp.getFoldersByName(name).next()
检索第一个指定名称的文件夹。setName(name)
如何重命名文件夹的例子。
function renameFolder(){
var file = DriveApp.getFoldersByName(name).next();
var oldName = file.getName();
var newName = oldName.toLowerCase();
file.setName(newName)
}
如何重命名文件夹中的文件示例。
function renameFiles(){
var folder = DriveApp.getFoldersByName(name).next();
var Files = folder.getFiles();
while(Files.hasNext()) {
var file = Files.next();
var oldName = file.getName();
var newName = oldName.toLowerCase();
file.setName(newName)
}
}
如果你创建一个后续的电子表格,并假设你想重命名的所有文件都在一个特定的文件夹中,下面的代码将帮助你列出文件(这在脚本中是可选的,但可以用来检查脚本是否在做它的工作!!!),然后将文件改名为小写。),然后将文件重命名为小写。你可以从创建的菜单中运行脚本 (My Files
)内的电子表格,或者设置一个触发器,在特定的时间日自动运行。
所以,你需要:
代码:
// ---------- Menu ----------
function onOpen() {
var ui = SpreadsheetApp.getUi();
ui.createMenu('My Files')
.addItem('Rename files', 'RenameFilesToLowerCase')
.addToUi();
}
function RenameFilesToLowerCase() {
var folder = DriveApp.getFolderById('ID GOES HERE');
var sheetId = "ID GOES HERE";
var ss = SpreadsheetApp.openById(sheetId);
// specify the sheet to write the DATA, here it's Sheet1
var sheet = ss.getSheetByName("Sheet1");
sheet.getRange("A2:B").clear();
var output = [];
var file;
var name;
var link;
var contents = folder.getFiles();
while(contents.hasNext()) {
file = contents.next();
data = [
file.setName(file.getName().toLowerCase()),
name = file.getName(),
link = file.getUrl(),
];
output.push([name, link]);
// write data to the sheet
sheet.getRange(2, 1, output.length, output[0].length).setValues(output);
}
};