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...
谢谢大家! 编辑: 发现这个但不确定它是否是我正在寻找的,说实话,不确定该代码是如何工作的。 Move files to directories based on some part of file name?
答案 0 :(得分:3)
也许是这样的?我刚才在这里找到了这个,我一直都在使用它。它会根据文件名和类型将文件移动到文件夹中。如果该文件夹不存在,它将在批处理文件的当前位置创建该文件夹。如果该文件夹已存在,则只需将其移动到该文件夹即可。
@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
)
可以更改第2行中的“ .pdf”以指定文件类型。您可以使用“。*”来移动所有文件类型,但这也会移动.bat文件和文件夹。
“~0,1!”第5行确定查看哪些字符以确定文件夹名称。第一个数字决定了它开始查看的字符(0表示开头,1表示从头开始的1个字符,等等)。第二个数字决定了它看到的字符数。如果它被更改为2,它将查看文件中的前2个字符。
目前它设置为仅查看第一个字符并仅移动.text文件。对于示例中的文件,它会将名为“A”的文件夹的所有“Arrow”文件和所有“Spear”文件移动到名为“S”的文件夹中。 “Shield”文件将保留原样,因为它们的扩展名为.txt,而不是.text。如果您将“ .text”更改为“ .t *”,它会将.txt和.text文件移动到“A”和“S”文件夹中。
答案 1 :(得分:2)
copy支持通配符,所以你需要做的就是:
copy Arrow* A