我遇到的问题是我的文件名使用点,但没有空格。我的文件夹名称使用空格,而不是点。
例如,我有一个名为的文件:
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 扩展名。