用于计算具有相同初始名称的文件并移动它们的批处理文件

时间:2014-03-06 21:29:30

标签: batch-file

是否可以这样做?
在文件夹中,我有相同初始名称的文件

示例:

Main folder
   -Quest2323231.txt  
     Quest2343434.txt  
     Quest2343435.txt   
     Fund103.txt  
    Fund102.txt

我有一个配置文件(abc.config),其中我有文件名,我需要计算并移动它们。如果计数超过2,那么我需要移动它们。 在这种情况下,我需要查找名称为“Quest”的文件 感谢您对此的帮助。

2 个答案:

答案 0 :(得分:0)

@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% 

答案 1 :(得分:0)

未经测试:这需要abc.config第一行中的文本,这是示例中的Quest等文件信息,如果2 matching files中有source folder以上的文件它将echo move命令将它们移至target folder

如果您只想匹配文件名的开头,请在两个地方将*%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