Batch file 用于计算具有相同初始名称的文件并将其移动的批处理文件

Batch file 用于计算具有相同初始名称的文件并将其移动的批处理文件,batch-file,Batch File,可以这样做吗? 在一个文件夹中,我有同名的文件 例如: Main folder -Quest2323231.txt Quest2343434.txt Quest2343435.txt Fund103.txt Fund102.txt 我有一个配置文件(abc.config),其中有一个文件名,我需要在该文件上计算和移动它们。如果计数大于2,则我需要移动它们。 在这种情况下,例如,我需要找到名为“Quest”的文件 谢谢你在这方面的帮助

可以这样做吗?
在一个文件夹中,我有同名的文件

例如:

Main folder
   -Quest2323231.txt  
     Quest2343434.txt  
     Quest2343435.txt   
     Fund103.txt  
    Fund102.txt
我有一个配置文件(abc.config),其中有一个文件名,我需要在该文件上计算和移动它们。如果计数大于2,则我需要移动它们。 在这种情况下,例如,我需要找到名为“Quest”的文件

谢谢你在这方面的帮助

未测试:这需要abc.config的第一行中的文本,这是示例中的文件信息,如
Quest
,如果
源文件夹中有超过
2个匹配文件
,则它将
回送
一个
移动
命令,以将它们移动到
目标文件夹

@echo off
  setlocal enableextensions
  set "number="
  for /f "tokens=1" %%a in (
    'dir /a-d /-c "c:\mainfolder\quest*" 2^>nul^|findstr /b /c:"  "'
  ) do if not defined number set "number=%%a"
  if not defined number set "number=0"

  echo %number% 
如果只想匹配文件名的开头,请在两个位置将
*%file%*
更改为
%file%*

移除
echo
以实际执行移动命令

@echo off
set "source=c:\mainfolder"
set "target=d:\target\folder"
set /p "file=" < "abc.config"

for /f %%a in ('dir /b /a-d "%source%\*%file%*" ^|find /i "%file%" 2^>nul^|find /c /v "" ') do set "number=%%a"
if %number% GTR 2 for /f "delims=" %%a in ('dir /b /a-d "%source%\*%file%*" ^|find /i "%file%" ') do (
   echo move "%source%\%%a" "%target%"
)
pause
@echo关闭
设置“source=c:\main文件夹”
设置“target=d:\target\folder”
设置/p“file=“<”abc.config”
对于('dir/b/a-d”%source%\*%file%*“^查找/i”%file%“2^>num^查找/c/v“')中的/f%%a,请设置“number=%a”
如果%number%GTR 2 for/f“delims=“%%a in('dir/b/a-d”%source%\*%file%*“^ find/i”%file%“)执行(
回显移动“%source%\%%a”“%target%”
)
暂停