我是批处理文件的新手,有人要求我创建一个文件,它将重命名多个目录的一部分。例如,我需要将目录重命名如下:
啊哈111\重命名到and 111\ahhh111 222\重名到and 222\and 333\重名到and 333\等等。
我想我可以在通配符中使用move,但仍然会出现语法错误;
move
例如,move "*hhh*" "*ggg*"抛出一个语法错误:-(
move "*hhh*" "*ggg*"
请问我怎么做?
发布于 2017-08-01 09:45:56
在移动/重命名目录时,move不接受通配符。
但是,您可以使用循环播放来遍历匹配的目录,并使用子串替换来构建新的名称。要使后者在循环中工作,需要使用延迟膨胀:
for /D %%D in ("?hhh*") do ( set "PDIR=%%~fD" & set "NAME=%%~nxD" setlocal EnableDelayedExpansion move "!PDIR!" "!NAME:hhh=ggg!" endlocal )
请注意,此方法将hhh的每次出现替换为ggg在目录名中的出现。
hhh
ggg
https://stackoverflow.com/questions/45434117
相似问题