创建批处理脚本来检测名称中带有点的文件和目录时出现问题

创建批处理脚本来检测名称中带有点的文件和目录时出现问题

我遇到的问题是我的文件名使用点,但没有空格。我的文件夹名称使用空格,而不是点。

例如,我有一个名为的文件:

C:\Files\One.Two.Three.Four.12.34.5.pdf

对应文件夹名为:

C:\Files\One Two Three Four

我想要一个脚本来检测目录.pdf中的所有文件C:\Files、目录中的所有文件夹C:\Files,然后根据之前给出的命名结构确定应将文件放入哪个文件夹。

我遇到了一个问题,文件名中有点,但文件夹名中没有,而且12.34.5文件名末尾有一个多余的部分,而对应的文件夹名中没有。此外,One.Two.Three.Four 后面的额外内容往往会随机变化。并不总是如此12.34.5

我将非常感激任何能得到的帮助。

答案1

如果你希望发生这种情况:

file: "cat.dog.bird.tree.2345.pdf" to folder: "cat dog bird tree"
file: "egg.bacon.bread.coffee.efgh.pdf" to folder: "egg bacon bread coffee"
file: "mother.father.sister.brother.pdf" to folder: "mother father sister brother"
file: "one.two.three.four.5678.pdf" to folder: "one two three four"

...您可以捕获文件名的前 4 个标记,然后将它们用空格而不是点组合在一起以形成文件夹名称。

@echo off 
for /f "delims=" %%A in ('dir /s /b *.pdf') do (
    for /f "tokens=1-4 delims=." %%B in ("%%~nA") do (
        echo file: "%%A" to folder: "%%B %%C %%D %%E"
        )
    )

注意:这假设批处理脚本所在文件夹和所有子文件夹中的所有.pdf 文件都具有以下格式:token1.token2.token3.token4后跟一些字符(或没有更多字符),然后是.pdf 扩展名。

相关内容