我目前正在尝试在多个文件中查找字符串。...例如,一旦找到“ Apple”,我想将包含“ Apple”的文件移动到新文件夹中。
这是我当前的脚本:
findstr /s /m /l /c:"Apple" "C:\Users\User\Desktop\created\*.php"
这会找到所有包含“ Apple”一词的.php页面,但是当前列出了它们,我似乎无法将它们移到新位置。
我知道我需要删除“ / m”,因为这会打印文件名...
那我该如何将它们移到新文件夹中?
谢谢
答案 0 :(得分:2)
绕个for
循环:
for /f "delims=" %%a in ('findstr /smlc:"Apple" "C:\Users\User\Desktop\created\*.php"') do ECHO move "%%~fa" "Z:\New Location\"
注意:这是批处理文件语法。要直接在命令行上使用,请将每个%%
替换为一个%
。
这只是回显move
命令。故障排除之后,请卸下ECHO
来武装move
命令。
答案 1 :(得分:0)
另一种稍微不同的选择,(根据需要创建一个名为搜索词的新目录,将其移入该目录,并且仅在该文件中不存在该目录时才移动)
>@Echo Off
Set "strPath=%UserProfile%\Desktop\created"
Set "strExtn=.php"
Set "strWord=Apple"
Set "strDest=%UserProfile%\Desktop\test"
CD /D "%strPath%" 2>Nul || Exit /B
For /F "Delims=" %%A In (
'Findstr /MISC:"%strWord%" "%strPath%\*%strExtn%" 2^>Nul'
) Do RoboCopy "%%~dpA." "%strDest%\%strWord%" "%%~nxA" /MOV>Nul
只需根据需要修改变量2
-5
的值。