通过过滤" @ a"重命名文件夹

时间:2016-06-22 06:09:37

标签: regex batch-file cmd

我有一个父文件夹,其中包含许多名称中包含@a的子文件夹。例如,

test@atest
@atest@a
@atest2
test3@a

我想批量重命名所有过滤掉@a部分的文件夹。 所需的输出应如下所示。

testtest
test
test2
nest3

注意:在过滤后,两个文件夹不会产生相同名称的情况。

2 个答案:

答案 0 :(得分:2)

批处理文件不支持正则表达式,但您可以使用string substitution
Lookup会将%FOLDER:@a=%替换为空字符串(@a之后的部分)。

您可以使用=循环处理包含@a的所有文件夹:
命令for /d for将只打印它们。
注意:这将在命令行上运行,您必须在批处理文件中使用%G in (*@a*) do echo %G

所以从所有文件夹名称中删除%%G的脚本:

@a

命令setlocal EnableDelayedExpansion for /d %%G in (*@a*) do ( set FOLDER=%%G move !FOLDER! !FOLDER:@a=! ) 允许使用循环中所需的delayed expansion个变量。变量被setlocal EnableDelayedExpansion而不是!包围,以便在执行该行时进行扩展。

答案 1 :(得分:0)

autowire="bytype"

尝试一下。