如何解决如何搜索包含空格的文件名,以便消除空白 流量:样本注意:参考文献:样本
以下,N代表数字,S&F代表姓和名的字母:
我创建了一个约6,500个pdf图像的文件结构,其文件名通常为NNN.SSSSS.FFFFF.pdf格式,我需要对其进行标准化, 但是,我创建的某些文件名在第一个点之后插入了一个空格,例如本示例NNN。 SSSSS。 FFFFF.pdf。某些姓氏前面的空格会影响姓氏排序顺序
我想在“我的Google云端硬盘”中搜索文件名,这些文件名中的数字后加点号。完成该搜索后,我可能会通过重命名来手动删除空格,或者如果太多,可能会创建一个Google脚本。 最终,我认为我需要一个通配符来表示数字。并假设%20代表空白,我在搜索字段中尝试了以下操作,但未找到NNN。 SSSSS文件。
%20 。%20 “。%20” 。%20在这里 我以为不是字母????
请帮助 问候戴斯
解决方法
我相信您的目标如下。
- 您要将PDF文件的文件名从
NNN. SSSSS. FFFFF.pdf
更改为NNN.SSSSS.FFFFF.pdf
。 - 您想使用Google Apps脚本实现这一目标。
流量:
不幸的是,在当前阶段,正则表达式不能用于the search query。这样,无法直接检索带有模式文件名的文件,例如NNN. SSSSS. FFFFF.pdf
。因此,我想提出以下流程。
- 检索文件夹中的PDF文件。
- 使用正则表达式检查文件名。
- 在这种情况下,我使用
[a-zA-Z0-9]{3}\. [a-zA-Z0-9]{5}\. [a-zA-Z0-9]{5}\.pdf
作为正则表达式。
- 在这种情况下,我使用
- 将文件名从
NNN. SSSSS. FFFFF.pdf
更改为NNN.SSSSS.FFFFF.pdf
。
样本
function myFunction() {
const folderId = "###"; // Please set the folder ID.
// 1. Retrieve PDF files in the folder.
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFilesByType(MimeType.PDF);
while (files.hasNext()) {
const file = files.next();
const filename = file.getName();
// 2. Check the filename using regex.
if (/[a-zA-Z0-9]{3}\. [a-zA-Z0-9]{5}\. [a-zA-Z0-9]{5}\.pdf/.test(filename)) {
// 3. Change the filename
file.setName(filename.replace(/ /g,""));
}
}
}
-
如果要检索云端硬盘中的所有PDF文件,请使用以下脚本。
const files = DriveApp.getFilesByType(MimeType.PDF); while (files.hasNext()) { const file = files.next(); const filename = file.getName(); if (/[a-zA-Z0-9]{3}\. [a-zA-Z0-9]{5}\. [a-zA-Z0-9]{5}\.pdf/.test(filename)) { file.setName(filename.replace(/ /g,"")); } }
注意:
- 在此正则表达式中,检查字母和数字。如果
NNN. SSSSS. FFFFF.pdf
模式中包含特定字符,请告诉我。
参考文献:
已添加
- 从
By NNN I should have said these are numerals ranging from 001 to 999.
开始,我了解到NNN
是3位数字。 - 从
In the same sense that SSSSS represents a Surname having multitude of letters and ranging in length.
开始,我了解到SSSSS
是5个字符的字符串。
从上面开始,修改后的示例脚本如下。
样本
function myFunction() {
const folderId = "###"; // Please set the folder ID.
const folder = DriveApp.getFolderById(folderId);
const files = folder.getFilesByType(MimeType.PDF);
while (files.hasNext()) {
const file = files.next();
const filename = file.getName();
if (/[0-9]{3}\. [a-zA-Z]{5}\. [a-zA-Z0-9]{5}\.pdf/.test(filename)) {
file.setName(filename.replace(/ /g,""));
}
}
}
或
function myFunction() {
const files = DriveApp.searchFiles("title contains '. ' and mimeType='application/pdf'");
while (files.hasNext()) {
const file = files.next();
const filename = file.getName();
if (filename.includes(". ")) {
file.setName(filename.replace(/ /g,""));
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。