如果这1000个文本文件位于同一目录D:\test下,且该目录只有这1000个文本文件,并且文件名中,除了后缀名外,再没有其他的点号,我想,这个问题可以分两步解决:
第一步:先把这些文件的文件名提出来,按照一行一个文件名的格式存放在另外目录的list.txt文件中;
第二步:用for命令解析list.txt中的文件,用find命令搜索字母p或者f,如果发现p,将文件放到d:\test1中;如果发现了f(也就是没有发现p),则把文件放到d:\test2中。
通过以上的分析,可以产生如下代码:
@echo off
dir /a /b d:\test>d:\list.txt
md d:\test1 d:\test2>nul 2>nul
for /f "delims=." %%i in (list.txt) do (
find /i "p" "d:\test\%%i.txt">nul 2>nul && (
copy "d:\test\%%i.txt" d:\test1>nul 2>nul
) || (
copy "d:\test\%%i.txt" d:\test2>nul 2>nul
)
)
del /q d:\list.txt
pause
另:楼主给出的环境还不够具体,所以在写这段代码的时候,我自行加上了很多限制条件。如果有更具体的环境的话,写代码就有针对性一些;