我有一个带子文件夹的文件夹,其中包括文件。
在Windows 10中,带有批处理文件,
我想使用FINDSTR命令在.txt文件中搜索特定的字符串,然后将包含我的字符串的文件复制到当前文件夹中。
REM Adjust location of list
SET list=C:\WorkProjects\Experiment\list.txt
REM Source dir
SET source=Z:\
REM Target dir
SET destination=C:\WorkProjects\Experiment
SET logfile=Outcome2.log
cd /d "%source%">>"%destination%\%directoryfile%"
dir * /s/b | FINDSTR /I /R /C:".*.pdf">"%destination%\%directoryfile%"
ECHO 2>"%destination%\temp.txt"
FOR /F "tokens=1,* delims=|" %%A IN (%list%) DO (
ECHO %%A>>"%destination%\temp.txt"
For /F "Delims=" %%X In ('FINDSTR /I /R /C:"\<%%A\..*\>" "%destination%\%logfile%"') DO (
ECHO %%X>>"%destination%\temp.txt"
)
)
%list%
包含一个字符串列表,如下所示如下:
12345
abcdf
aadfe
以下是示例的输出:
12345 <-这是我要查找的字符串
Z:\ Master List \ 1 \ 12 \ 123 \ 1234 \ 12345.pdf <-输出
Z:\ Master List \ A \ AD \ AD-1 \ AD-12 \ AD-12345.pdf <-输出
所以,第一个路径就是我要返回的路径,而第二个路径不是因为它前面有“ AD-”。
我将如何实现这一目标?
答案 0 :(得分:0)
您执行以下操作:
dir * | findstr "12345"
您发现:
12345.txt
AD-12345.txt
如果您的脚本基于以下内容:
dir 12345.*
您会发现:
12345.txt
找不到AD-12345
。
答案 1 :(得分:0)
将'FINDSTR /I /R /C:"\<%%A\..*\>"
更改为'FINDSTR /I /R /C:"\\%%A\..*\>"
可以达到目的