繁体   English   中英

根据名称和带有批处理文件的课程代码将文件移动到文件夹

[英]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

您需要更改sourcedirdestdir的设置以适合您的情况。

所需的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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM