创建批处理文件以搜索特定文件夹中的特定字符串的.txt文件,并将所有文件移动到新文件夹

时间:2016-08-03 14:00:29

标签: batch-file

正如标题所提到的那样,我正在寻找一种方法来创建一个批处理文件,该文件在我的C盘上的文件夹中的.txt文件中查找特定字符串。然后需要将包含此字符串的任何txt文件移动到其他文件夹。

我可以让我的批处理文件找到项目,我只是无法弄清楚如何移动包含字符串的所有文本文件。

更新:我现在可以使用下面提供的解决方案来移动文件。

由于

2 个答案:

答案 0 :(得分:0)

基本上您需要做的是从命令中捕获输出。这是通过FOR / F命令完成的。

C:\BatchFiles\Tyler>echo Thread aborted>file.txt

C:\BatchFiles\Tyler>dir /b
backup
file.txt

C:\BatchFiles\Tyler>FOR /F "delims=" %G in ('findstr /m /C:"Thread aborted" *.*') do @move "%G" backup
            1 file(s) moved.

C:\BatchFiles\Tyler>dir /b
backup

C:\BatchFiles\Tyler>dir /b backup\*.*
file.txt

C:\BatchFiles\Tyler>

只是为了告诉你这确实有效。我正在从命令行运行所有内容,以显示输出。

varchar(max)

答案 1 :(得分:0)

将此脚本保存到 sorting.bat ,从打开的Cmd提示符运行,如果有任何错误,请告诉我。根据您的问题,您似乎没有dir结构绕过目标文件的文件夹。此代码还将帮助运行类似任务并需要查看目录结构的用户:

@echo off
set "sourcedir=C:/Provider.Rates" & set "destindir=C:/Aborted.Threads"
for /R "%sourcedir%" %%G in (*.txt) do (
    find /i "Thread Aborted" "%%G" >nul 2>&1 && move /y "%%G" "%destindir%\%%~nxG" >nul)
echo/ & echo Sorting completed.
timeout 5
exit /b