我有一个父文件夹,其中包含许多名称中包含@a
的子文件夹。例如,
test@atest
@atest@a
@atest2
test3@a
我想批量重命名所有过滤掉@a
部分的文件夹。
所需的输出应如下所示。
testtest
test
test2
nest3
注意:在过滤后,两个文件夹不会产生相同名称的情况。
答案 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"
尝试一下。