在子文件夹中查找字符串并移动到新位置

问题描述 投票:0回答:2

我目前正在尝试在多个文件中查找字符串......例如“Apple”,一旦找到,我想将包含“Apple”的文件移动到新文件夹。

这是我当前的脚本:

findstr /s /m /l /c:"Apple" "C:\Users\User\Desktop\created\*.php"

这找到了所有包含“Apple”一词的 .php 页面,但是它当前列出了它们,我似乎无法将它们移动到新位置。

我知道我需要删除“/m”,因为这会打印文件名...

那么我如何将它们移动到新文件夹中?

谢谢你

windows batch-file
2个回答
3
投票

放置一个

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
命令。


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

© www.soinside.com 2019 - 2024. All rights reserved.