批量根据名称长度隔离文件

时间:2013-09-09 05:10:01

标签: batch-file command

我在文件夹fol1中得到如下文件:

wsd.11
fmsd.12
wsd.102
fmsd.203
typo
echo

我想将带有两位数字的文件,即wsd.11,fmsd.12移动到文件夹fol2, 我也想把拼写错误和回声复制到fol2

2 个答案:

答案 0 :(得分:0)

@echo off
set "my_folder=c:\fol1"
set "other_folder=c:\fol2"
for /f "delims=" %%F in ('dir /a:-d /b /s %my_folder% ^| findstr /e /r  "\.[0-9][0-9]"') do (
   move "%%~dpfnxF" "%other_folder%"
)

copy "%my_folder%\echo" "%other_folder%"
copy "%my_folder%\typo" "%other_folder%"

仅当两位数位于文件末尾时才会起作用。

答案 1 :(得分:0)

从命令行(无批处理)

for %F in (fol1\*) do @echo %F|findstr "\.[0-9]*$" && (>nul move /y "%F" "fol2" & (call )) || >nul copy /y "%F" "fol2"

(call )清除任何错误,以便在由于某种原因移动失败时代码不会落入复制部分。

如果在批处理文件中使用,则加倍百分比。