如何根据部分文件名使用 Google 脚本自动移动 Google 驱动器中的文件?
How to move files in Google Drive automatically with Google Script, based on partial file name?
我对 Google 脚本比较陌生。我们想让所有上传到 Google 驱动器中的单个文件夹的文件根据文件名的一部分自动移动到其他文件夹。
3 个示例文件:APX PMT 05.02.2019、ALT PMT 05.03.2019、BEA PMT 05.04.2019
我们希望根据文件名的前 3 个字母将这些文件移动到它们的目标文件夹。 APX PMT 05.02.2019 被移动到 APX 文件夹,ALT PMT 05.03.2019 被移动到 ALT 文件夹等。
没有代码示例,因为我对此非常陌生。 Move files automatically from one folder to another in Google Drive 是我学习这个的良好开端,但仍然不确定如何让它仅根据文件名的一部分移动文件。
结果:希望人们能够将文件上传到一个目的地,代码会自动将它们移动到适当的文件夹。
测试代码版本 2.0。如果我删除 2 个字符集之间的 spaces(将 BEA RFT 更改为 BEARFT 或 BEA_RFT),工作如下,因为我们的工作场所现在希望它们按文件名中的前 7 个字符排序。当字符中有 space 时,如何使其工作?:
function moveFiles() {
var dfldrs=['BEA RFT', 'BEA ADJ', 'BEA PMT', 'BEA CHG'];//Seven letter prefixes
var ofObj={BEA RFT:'ID',BEA ADJ:'ID',BEA PMT:'ID',BEA CHG:'ID'};//distribution folder ids
var upldFldr=DriveApp.getFolderById('ID');
var files=upldFldr.getFiles();
while(files.hasNext()) {
var file=files.next();
var key=file.getName().slice(0,7);
var index=dfldrs.indexOf(key);
if(index>-1) {
Drive.Files.update({"parents": [{'id': ofObj[key]}]}, file.getId());
}
}
}
移动文件
请在 运行ning 脚本
之前阅读这些说明
- 您需要提供三个字母前缀
- 您需要提供与每个前缀关联的分发文件夹 ID
- 您需要提供上传文件夹id
- 您需要从您的上传文件脚本中运行此程序,或根据需要提供备用触发功能。
- 您需要启用 Advance Drive API 版本 2
代码
function moveFiles() {
var dfldrs=['APX','ALT','BEA'];//Three letter prefixes
var ofObj={APX:'APX id',ALT:'ALT id',BEA:'BEA id'};//distribution folder ids
var upldFldr=DriveApp.getFolderById('folderid');
var files=upldFldr.getFiles();
while(files.hasNext()) {
var file=files.next();
var key=file.getName().slice(0,3);
var index=dfldrs.indexOf(key);
if(index>-1) {
Drive.Files.update({"parents": [{"id": ofObj[key]}]}, file.getId());
}
}
}
我对 Google 脚本比较陌生。我们想让所有上传到 Google 驱动器中的单个文件夹的文件根据文件名的一部分自动移动到其他文件夹。 3 个示例文件:APX PMT 05.02.2019、ALT PMT 05.03.2019、BEA PMT 05.04.2019 我们希望根据文件名的前 3 个字母将这些文件移动到它们的目标文件夹。 APX PMT 05.02.2019 被移动到 APX 文件夹,ALT PMT 05.03.2019 被移动到 ALT 文件夹等。
没有代码示例,因为我对此非常陌生。 Move files automatically from one folder to another in Google Drive 是我学习这个的良好开端,但仍然不确定如何让它仅根据文件名的一部分移动文件。
结果:希望人们能够将文件上传到一个目的地,代码会自动将它们移动到适当的文件夹。
测试代码版本 2.0。如果我删除 2 个字符集之间的 spaces(将 BEA RFT 更改为 BEARFT 或 BEA_RFT),工作如下,因为我们的工作场所现在希望它们按文件名中的前 7 个字符排序。当字符中有 space 时,如何使其工作?:
function moveFiles() {
var dfldrs=['BEA RFT', 'BEA ADJ', 'BEA PMT', 'BEA CHG'];//Seven letter prefixes
var ofObj={BEA RFT:'ID',BEA ADJ:'ID',BEA PMT:'ID',BEA CHG:'ID'};//distribution folder ids
var upldFldr=DriveApp.getFolderById('ID');
var files=upldFldr.getFiles();
while(files.hasNext()) {
var file=files.next();
var key=file.getName().slice(0,7);
var index=dfldrs.indexOf(key);
if(index>-1) {
Drive.Files.update({"parents": [{'id': ofObj[key]}]}, file.getId());
}
}
}
移动文件
请在 运行ning 脚本
之前阅读这些说明- 您需要提供三个字母前缀
- 您需要提供与每个前缀关联的分发文件夹 ID
- 您需要提供上传文件夹id
- 您需要从您的上传文件脚本中运行此程序,或根据需要提供备用触发功能。
- 您需要启用 Advance Drive API 版本 2
代码
function moveFiles() {
var dfldrs=['APX','ALT','BEA'];//Three letter prefixes
var ofObj={APX:'APX id',ALT:'ALT id',BEA:'BEA id'};//distribution folder ids
var upldFldr=DriveApp.getFolderById('folderid');
var files=upldFldr.getFiles();
while(files.hasNext()) {
var file=files.next();
var key=file.getName().slice(0,3);
var index=dfldrs.indexOf(key);
if(index>-1) {
Drive.Files.update({"parents": [{"id": ofObj[key]}]}, file.getId());
}
}
}