是否可以使用Windows批处理脚本按名称中的非常数编号归档文件?

时间:2019-06-08 20:16:38

标签: batch-file

例如,

我们有一个文件夹

c:\files

该文件夹包含以下文件:

 abc_m2611somthing.pdf
 abc_m2611somthing.dat
 abc_m2611somthing.log
 abc_m3849somthing.pdf
 abc_m3849somthing.dat
 abc_m3849somthing.log
 xyz_s1654somthing.pdf
 xyz_s1654somthing.dat
 xyz_s1654somthing.log

每天都会生成新文件并将其移至该文件夹。 这些文件的文件名和扩展名是恒定的,除了中间的数字外,每天新文件中的4位数字都将不同。

我的任务:

编写一个批处理,该批处理将接收具有相同编号的文件,并将其存档。存档的名称必须与文件名相同。

最终结果应如下所示:

abc_m2611somthing.zip
abc_m3849somthing.zip
xyz_s1654somthing.zip

每个归档文件都包含具有相同编号的所有文件。

困难在于,每天的数字都不一样。

1 个答案:

答案 0 :(得分:0)

所以,我设法写了批处理

@echo off

set "srcfolder=c:\files"
set "dstfolder=c:\zipfiles"
set "winrar=c:\Program files\WinRar"

for /f %%A in ('dir /b %srcfolder%') do (

    cd %winrar% 
    rar a -ep "%dstfolder%\%%~nA.rar" "%srcfolder%\%%~nA*"

    )
)

它将所有具有相同编号的文件放入文件中,并与文件具有相同的名称。