我在一个文件夹中有 160 万(!)个 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
我不知道正确的语法是什么。
我确实找到了这个链接需要一个脚本来根据文件名创建文件夹,并自动移动文件 我根据那个链接制作了这批文件
pushd D:\Data\Medinfo PDFs
for %%F in (*.pdf) do (
2>nul md "%%~nF"
>nul move /y "%%~nF*.*" "%%~nF"
)
popd
但是,它不允许我仅从文件名的一部分创建文件夹名称。如果我能弄清楚那部分,我认为它会起作用。我知道我需要为文件夹名称创建变量,但我不知道如何编辑文件名变量以删除空格后的所有内容。任何帮助,将不胜感激。我不反对在 PowerShell 或其他东西中执行此操作,只要它在 Windows Server 2008 R2 中本机工作即可。