Sorting 基于部分文件夹名称将多个PDF移动到多个文件夹
我已经研究过这个网站和网上的许多其他网站,但我还没有完全弄清楚我需要什么来完成这项任务 我拥有的是一个包含1000个PDF文件的文件夹。每个PDF都是一个健身房会员表,文件名中包含健身房会员的姓名和开始日期。我需要将这些PDF移到已包含子文件夹的主文件夹中。这些子文件夹与健身房成员的名称匹配,但不包含日期。但是,它们确实包含一个括在括号中的特定代码 例如: 我的GymForms文件夹包含1000个PDF文件。(源文件夹) C:\Users\BlackPC\Desktop\GymForms 艾伦·吉文斯-H-9 1-16-2016.pdf 简·多伊-H-9 7-10-2015.pdf 约翰·亨利-H-9 1-16-2016.pdf 威廉瀑布-H-9 7-10-2015.pdf 我的主文件夹(目标文件夹)包含所有健身房成员姓名的子文件夹。 C:\Users\BlackPC\Desktop\ActiveMembers 艾伦·吉文斯(33岁) 无名氏(05R) 约翰·亨利(05岁) 威廉瀑布 所以下面的批处理文件就是我拥有的(它是从另一个用户的帖子中修改的)。。。如果成员文件夹(目标文件夹)不包含任何括号,则它将起作用。换句话说,当批处理执行时,Alan Givens、Jane Doe和John Henry的PDF不会移动/排序到各自的文件夹中。但是成员“William Falls”的PDF将排序到正确的文件夹中,不会出现任何问题 所以我希望有人能帮我修好它,让它做我想做的事?本质上,我需要调整这个批处理文件,以便在目标文件夹名称中包含括号时,PDF仍然可以排序。或者,批处理文件进行了调整,以便根据文件夹名称的前9个字符将PDF排序到目标文件夹中 提前谢谢 -批处理文件-Sorting 基于部分文件夹名称将多个PDF移动到多个文件夹,sorting,batch-file,pdf,directory,Sorting,Batch File,Pdf,Directory,我已经研究过这个网站和网上的许多其他网站,但我还没有完全弄清楚我需要什么来完成这项任务 我拥有的是一个包含1000个PDF文件的文件夹。每个PDF都是一个健身房会员表,文件名中包含健身房会员的姓名和开始日期。我需要将这些PDF移到已包含子文件夹的主文件夹中。这些子文件夹与健身房成员的名称匹配,但不包含日期。但是,它们确实包含一个括在括号中的特定代码 例如: 我的GymForms文件夹包含1000个PDF文件。(源文件夹) C:\Users\BlackPC\Desktop\GymForms 艾伦·
@echo off
setlocal enableextensions disabledelayedexpansion
pushd "C:\Users\HPC6250\Desktop\GymForms"
for /d %%I in (C:\Users\HPC6250\Desktop\ActiveMembers\*) do (
for %%F in (*) do (
for /f %%A in ('echo %%~nF ^| find /i "%%~nI"') do (
set /p a="Moving %%F to %%I... "<NUL
move "%%F" "%%I" >NUL
echo Done.
)
)
)
popd
@echo关闭
setlocal enableextensions disabledelayedexpansion
pushd“C:\Users\HPC6250\Desktop\GymForms”
对于(C:\Users\HPC6250\Desktop\ActiveMembers\*)中的/d%%I,请执行以下操作(
对于(*)中的%%F,请执行以下操作(
对于('echo%%~nF^ | find/i“%%~nI”中的/f%%A,请执行以下操作(
set/p a=“将%%F移动到%%I…”NUL
回音完毕。
)
)
)
邻苯二胺
@ECHO OFF
SETLOCAL
设置“sourcedir=U:\sourcedir\t w o”
设置“destdir=U:\destdir”
对于/f“delims=”%%I IN(
'目录/b/ad”%destdir%\*“'
)做(
对于/f“tokens=1delims=(“%%s IN(“%%~I”)DO(
如果存在“%sourcedir%\%%s*”回显(移动“%sourcedir%\%%s*”“%destdir%\%%I\”
)
)
后藤:EOF
您需要更改sourcedir
和destdir
的设置以适应您的环境
所需的移动命令仅用于测试。ECHO
在验证命令正确后,更改ECHO(MOVE
至MOVE
以实际移动文件。追加>nul
以抑制报告消息(例如1个文件已移动
)
将目标子目录的目录列表读入%%I
标记化%%I
使用(
作为分隔符,第一部分(最多但不包括分隔符)到%%s
如果源中有名为%%s*
的文件,请将它们移动到目标+找到的目录的全名
我想知道你打算如何处理两个“John Smith”的问题。我向你致敬,我的朋友。你的.bat编码工作得很有魅力,完全符合我的需要。谢谢你快速发布解决方案。我真的很感谢你,因为你让我免于头痛!