是否可以这样做?
在文件夹中,我有相同初始名称的文件
示例:
Main folder
-Quest2323231.txt
Quest2343434.txt
Quest2343435.txt
Fund103.txt
Fund102.txt
我有一个配置文件(abc.config),其中我有文件名,我需要计算并移动它们。如果计数超过2,那么我需要移动它们。 在这种情况下,我需要查找名称为“Quest”的文件 感谢您对此的帮助。
答案 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