File 使用批处理文件根据名称和课程代码将文件移动到文件夹
我一直在寻找一种解决方案,并找到了类似的解决方案,但它们要么是使用固定长度的文件名,要么被用于对文件夹中的文件进行排序,而不是移动它们 我试图做的是,当一名工作人员在S驱动器中放置一个名为:File 使用批处理文件根据名称和课程代码将文件移动到文件夹,file,batch-file,directory,File,Batch File,Directory,我一直在寻找一种解决方案,并找到了类似的解决方案,但它们要么是使用固定长度的文件名,要么被用于对文件夹中的文件进行排序,而不是移动它们 我试图做的是,当一名工作人员在S驱动器中放置一个名为: Bloggs Joe AHC20410 Student Forms.pdf 批处理文件(在一天中的特定时间运行)将文件移动到H驱动器中的文件夹中: H:\Student Records Current\Bloggs Joe AHC20410 例如,当批处理文件运行时,S驱动器可能是这样的: Bloggs
Bloggs Joe AHC20410 Student Forms.pdf
批处理文件(在一天中的特定时间运行)将文件移动到H驱动器中的文件夹中:
H:\Student Records Current\Bloggs Joe AHC20410
例如,当批处理文件运行时,S驱动器可能是这样的:
Bloggs Joe AHC20410 Student Forms.pdf
Bloggs Joe AHC20410 Evidence.jpg
Doe Jane AHC31010 Workbook.doc
Doe Joe AHC20410 Images.png
任何帮助都将不胜感激 @ECHO关闭
SETLOCAL
设置“sourcedir=U:\sourcedir”
设置“destdir=U:\destdir”
对于/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][0-9]”
)做(
对于/f“delims=”%%a IN(
“dir/b/a-d”%sourcedir%\%%d*“2^>num^ findstr/i/r/c:“AHC[0-9][0-9][0-9][0-9][0-9][0-9]”
)做(
回显(移动“%sourcedir%\%%a”“%destdir%\%%d\”
)
)
后藤:EOF
您需要更改sourcedir
和destdir
的设置以适应您的环境
所需的移动命令仅用于测试。ECHO
在验证命令正确后,更改ECHO(MOVE
至MOVE
以实际移动文件。追加>nul
以抑制报告消息(例如1个文件已移动
)
假设目标目录已经存在
基本上,查找包含ahc
的所有目录名,然后过滤ahc,然后再过滤5个数字,以获得良好的度量。将这些字符串分配给%%d
然后,对于找到的每个%%d
,查找以%%d
开头并包含字符串ahc,后跟5个数字,前面和后面都有空格的源文件
将名称组合在一起并显示结果…请参见move/?
。将路径用空格括起来。键入help
以获取命令列表。请参见命令提示符下的一些约定。非常感谢@Magoo花时间编写代码,我的批处理文件技能已经相当生疏。当de找到了源和目标,但没有复制…但最终发现丢失了一个“)”。工作非常完美!