[英]Moving files to folders based on Name and Course Code with Batch File
我一直在寻找解决方案,并且找到了类似的解决方案,但是它们要么具有固定长度的文件名,要么被用于对文件夹中的文件进行排序,而不是移动它们。
我要尝试做的是当工作人员在S驱动器中放置一个文件时,该文件名为:
Bloggs Joe AHC20410 Student Forms.pdf
批处理文件(在一天中的特定时间运行)会将文件移至H盘 ,并移至以下文件夹中:
H:\Student Records Current\Bloggs Joe AHC20410
因此,例如,运行批处理文件时, S Drive可能如下所示:
Bloggs Joe AHC20410 Student Forms.pdf
Bloggs Joe AHC20410 Evidence.jpg
Doe Jane AHC31010 Workbook.doc
Doe Joe AHC20410 Images.png
任何帮助将不胜感激!
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "destdir=U:\destdir"
FOR /f "delims=" %%d IN (
'dir /b /ad "%destdir%\*ahc*" 2^>nul ^|findstr /i /r /c:"AHC[0-9][0-9][0-9][0-9][0-9]"'
) DO (
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\%%d*" 2^>nul ^|findstr /i /r /c:" AHC[0-9][0-9][0-9][0-9][0-9] "'
) DO (
ECHO(MOVE "%sourcedir%\%%a" "%destdir%\%%d\"
)
)
GOTO :EOF
您需要更改sourcedir
和destdir
的设置以适合您的情况。
所需的MOVE命令仅仅ECHO
编用于测试目的。 确认命令正确无误后 ,将ECHO(MOVE
更改为MOVE
即可实际移动文件。Append >nul
可禁止报告消息(例如,已1 file moved
)
假定目标目录已经存在。
本质上,找到所有包含ahc
的目录名,并过滤ahc
,然后过滤ahc followed by 5 numerics
以取得良好的效果。 将这些字符串分配给%%d
。
然后,对于找到的每个%%d
,查找以%%d
开头并且包含字符串ahc followed by 5 numerics
且前后均带有空格的源文件。
将名称绑定在一起并显示结果...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.