0

我以前做过一些小批处理文件,但从来没有在文件夹中读取任何需要的文件名。

我需要一个可以为我排序文件夹的批处理文件。

我需要它来查看一个文件夹,搜索每个文本文件,如果它包含一个“字符串”,然后将它移动到一个接受的文件夹中,如果没有,将它移动到一个被拒绝的文件夹中。

任何想法如何解决这个问题?

我之前使用过以下内容来查找文本。

find /c "string" file
if %errorlevel% equ 1 goto

我不知道如何让它搜索文件夹中的每个文件,并且这些文件名每天都会更改。

4

1 回答 1

2

在您的问题陈述中,您说所有这些文件都是.txt文件。所以我建议使用 afor loop来遍历.txt目录中的每个文件,然后使用它findstr来搜索预期的字符串。我在下面发布的代码将以这种方式工作。本质上,它将目录更改为桌面(或文件所在的任何位置),然后遍历每个.txt文件并搜索字符串。findstr输出被重定向到(为了更快的nul处理),如果成功,.txt文件被移动到C:\Users\Desktop\SuccessFolder,否则这个文件被放置在C:\Users\Desktop\FailureFolder. (记住搜索"string",原始位置和 2 个文件夹位置仍需要设置)我相信此代码应该适用于您要完成的工作。让我知道是否需要对代码进行任何更改=]

@Echo off
cd /D C:\Users\Desktop
FOR %%a in (*.txt) do (
findstr /C:"string" "%%a" >nul && move "%%a" "C:\Users\Desktop\SuccessFolder" || move "%%a" "C:\Users\Desktop\FailureFolder")
于 2012-10-17T17:09:07.283 回答