Windows 10 - 在设置的字符间隔内搜索文件名的特定部分

Windows 10 - 在设置的字符间隔内搜索文件名的特定部分

早安/晚安,

也许有人能帮上忙,也许这也能帮到别人。如果观察下面的例子:

01022015- BLABLABLA 04022018 - BLABLABLAB 02012016 - Blablabla

我想做的是搜索位于文件名第三和第四个字符上的 02。类似于在第二个字符后搜索“02”。

这样,我就能分别整理所有 Feb 文件,然后正确地批量重命名它们。

这可行吗?以下是搜索查询的示例,可作为进一步开发的基础。

已经谢谢你了〜”(4)

答案1

当 02 位于文件名的第三和第四个字符时,搜索 02。

使用?表示“强 1 个字符”的模式符号:

DIR ??02*.*

答案2

我认为你这次很幸运。在这种情况下,正则表达式非常简单,甚至可以在微软 视窗 10命令行预处理器。

正则表达式是??02*

因此,您可以大胆地去发出操作系统命令,例如RENAME ??02* <New Name>

RENAME 语法

答案3

递归尝试一下:
for /f tokens^=* %F in ('where /r . "??02*.*"')do rename "%~F" "Some_New_Name%~xF"
  • 输出:
rename "G:\SUPER_USER\Q59446122\310220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\110220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\100220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\170220218.txt" "Some_New_Name.txt"
rename "G:\SUPER_USER\Q59446122\Sub_1\030220218.txt" "Some_New_Name.txt"

对当前文件夹尝试此操作:

for /f tokens^=* %F in ('where "??02*.*"')do rename "%~F" 
  • 输出:
rename G:\SUPER_USER\Q59446122\310220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\110220218.txt Some_New_Name.txt
rename G:\SUPER_USER\Q59446122\100220218.txt Some_New_Name.txt

相关内容