批处理文件移到文件上他们的名字的一部分,基地(Batch File move files base

2019-09-01 02:23发布

是否有可能为一个bat文件,通过一个文件夹,搜索和查看文件名,并只与名称,或在它这个名字的一部分,移动文件? 然后将它们移动到指定位置。 例如:

Parent Folder 
Arrow0273.text
Arrow0314.text
Spear083112.text
Spear0832.text 
Sheild087.txt
Sheild87.txt 

Move only the files with “Arrow” in their name into folder location “A”. 
ect... 

多谢你们! 编辑:发现这不过不知道它是什么我正在寻找,并坦率地说,不知道这些代码是如何工作的。 移动基于文件名的某部分文件目录?

Answer 1:

副本支持通配符因此,所有你需要做的是:

copy Arrow* A



Answer 2:

也许这样的事情? 我前一阵子发现这个放在这里,我用它所有的时间。 它会移动文件到基于文件名和类型的文件夹。 如果该文件夹不存在,它会在批处理文件的当前位置创建文件夹。 如果文件夹已经存在,它会简单地将其移动到该文件夹​​。

@echo off &setlocal
for /f "delims=" %%i in ('dir /b /a-d *.text') do (
set "filename1=%%~i"
setlocal enabledelayedexpansion
set "folder1=!filename1:~0,1!"
mkdir "!folder1!" 2>nul
move "!filename1!" "!folder1!" >nul
endlocal
)

所述“.PDF”在第2行可以被改变,以指定的文件类型。 您可以使用“*”将所有文件类型,虽然这也将移动.bat文件和文件夹。

在“〜0.1”! 在第5行确定哪些字符搜索以确定所述的文件夹名称。 第一个数字确定它开始寻找在哪个字符(0是在开始时,图1是从一开始1个字符,等等)。 第二个数字决定了它有多少个字符看。 如果设定为2,它看起来在文件中的第2个字符。

目前,它被设置为只能看第一个字符,仅移动的.text文件。 对于您的示例文件时,它都会为一个名为“A”文件夹中的“箭”的文件,所有的“矛”文件移动到一个名为“S”的文件夹。 在“盾牌”的文件会留他们在哪里,他们的扩展名为.txt,.text区段没有。 如果你改变“ 的.text”到“.T *”将同时.txt和的.text文件拷贝到“A”和“S”的文件夹。



文章来源: Batch File move files base on part of their name