我有1.6百万(!)个PDF文件存放在一个文件夹中。这些文件的命名方式都类似于这样:
LAST_FIRST_7-24-1936 Diagnostic - Topography 11-18-10_1.pdf
LAST_FIRST_7-24-1936 Glasses RX 6-1-11_3.pdf
我需要根据文件名的第一部分创建一个文件夹,然后将该文件和所有具有相同文件名第一部分的其他文件移动到该文件夹中。在这种情况下,文件夹将被命名为“LAST_FIRST_7-24-1936”。文件夹的名称始终与文件名的第一部分相同,直到空格。
我想创建一个批处理文件来完成这个任务。根据我粗略的编程知识,我想出了以下逻辑过程:
1 Take the first file and name it var1
2 Remove everything after the space in var1 and name it var2
3 Create a folder named var2
4 Move the file var1 into the folder var2
5 If there are more files Go to line 1, otherwise end
我不知道这个的正确语法应该是什么。
我找到了这个链接Need a script to create folders based on file names, and auto move files,我根据那个链接制作了这个批处理文件。
pushd D:\Data\Medinfo PDFs
for %%F in (*.pdf) do (
2>nul md "%%~nF"
>nul move /y "%%~nF*.*" "%%~nF"
)
popd
但是,它不允许我仅使用文件名的一部分来创建文件夹名称。如果我能解决这个问题,我认为它会起作用。 我知道我需要为文件夹名称创建变量,但我不知道如何编辑文件名变量以删除空格后面的所有内容。 任何帮助都将不胜感激。只要它在 Windows Server 2008 R2 中本地工作即可,我不反对在 PowerShell 或其他东西中完成此操作。