通过 CMD Regex 批量移动

通过 CMD Regex 批量移动

我在一个平面文件夹中有大约 15k 个文件。所有文件都以 命名blah blah - whatever.png。基本上,我想将它们全部移动到名为 的文件夹中blah blah。我不想重命名它们中的任何一个,只是将它们放入各自的文件夹中。我想我需要用某种正则表达式来做到这一点,但我似乎无法弄清楚如何在这种情况下应用正则表达式。

答案1

for命令不支持正则表达式。

假设所有文件都包含一个-字符,您可能可以在批处理文件中使用此代码:

for /f "delims=- tokens=1* usebackq" %%a in (`dir /b *.png`) do (
    if not exist "%%a" mkdir "%%a"
    move "%%a-%%b" "%%a"
)

delims=-将在 上拆分文件名-,并给出将创建的目录名称(如果该目录尚不存在)。接下来,原始文件名%%a-%%b将被移动到该目录。

相关内容