我在Google驱动器中有大写的文件,我想将它们全部重命名为小写
示例:
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
答案 0 :(得分:2)
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)
}
}
答案 1 :(得分:0)
如果您创建一个后续电子表格,并假定您要重命名的所有文件都在特定文件夹内,则以下代码将帮助您列出文件(在脚本中为可选,但可能很有用仔细检查脚本是否能正常工作!),然后将文件重命名为小写。您可以从电子表格内创建的菜单(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);
}
};