批处理文件:复制所有文件,但其名称包含一些子字符串

pai*_*eha 3 filenames command-line cmd batch-file

首先是我的初学者.我想创建批处理文件来搜索特定文件夹(包括所有它的子文件夹)并复制其中的所有文件,除了那些文件名包含一些特定的字符串,这是我到目前为止

set now=fish        
set logDirectory="C:\Users\paiseha\Desktop\bb\"      
for /r %logDirectory% %%i IN (*%now%*.*) do (          
rem copy process goes here            
)       
Run Code Online (Sandbox Code Playgroud)

假设我有3个文件

  C:\Users\fareast\Desktop\bb\one.txt  
  C:\Users\fareast\Desktop\bb\twofishtwo.txt  
  C:\Users\fareast\Desktop\bb\three.txt  
Run Code Online (Sandbox Code Playgroud)

所以我只想复制文件one.txt和three.txt,而是只复制第二个,我知道它因为*%now%*.*所以我怎么能把它反转它以反过来做,请帮助我,请提前谢谢

End*_*oro 5

尝试:

@ECHO OFF &setlocal
set "now=fish"        
set "logDirectory=C:\Users\paiseha\Desktop\bb"      
for /f "delims=" %%a in ('dir /a-d/b/s "%logDirectory%"^|findstr /riv "^.*[\\][^\\]*%now%[^\\]*$"') do (          
  rem copy process goes here            
)
Run Code Online (Sandbox Code Playgroud)

编辑: \字符表示为[\\],而不是\\因为在Vista FINDSTR正则表达式如何逃脱一个怪癖\.Vista需要\\\\,但XP和Win 7使用\\.在所有平台上运行的唯一表示是[\\].请参阅Windows FINDSTR命令的未记录的功能和限制是什么?了解更多信息.