0

作为标题,我试图弄清楚如何根据文件名将多个文件移动到基​​于文件名的唯一文件夹

例如,假设我有一个文件夹,其中包含来自我家网络摄像头的图像,其名称如下:

garden.bench.2013.image535.other.random.stuff.jpg
kids.swing.2013.image757.other.random.stuff.jpg
garage.2013.image563.other.random.stuff.jpg
front.garden.2013.image456.other.random.stuff.jpg
other.random.names.2013.image576.other.random.stuff.jpg

我想根据日期之前的文件名将“花园长椅”、“前花园”和“车库”图像移动到特定文件夹(比如说 C:\webcam\images),如下所示:

C:\webcam\images\Garden Bench\garden.bench.2013.image535.other.random.stuff.jpg
C:\webcam\images\Front Garden\front.garden.2013.image456.other.random.stuff.jpg
C:\webcam\images\Garage\garage.2013.image563.other.random.stuff.jpg

希望我能解释清楚,这在 1 行中是可行和可能的

编辑: atm 我正在使用如下代码:

move /Y garden.bench*.jpg "C:\webcam\images\Garden Bench\"
move /Y front.garden*.jpg "C:\webcam\images\Front Garden\"
move /Y garage*.jpg "C:\webcam\images\Garage\"

这工作正常,但是当你有 20 行看起来像那样并且想要更整洁的 1 行方式时会非常混乱

4

1 回答 1

0
@echo off

:nextParam
   set selector=%~1
   if not defined selector goto :EOF
   for %%f in (%selector: =.%.%date:-4%.*.jpg) do (
      move /Y %%f "C:\webcam\images\%selector%\"
   )
   shift
goto nextParam

如果以前的批处理文件称为 moveFiles.bat,那么移动文件的“1 行”方式是:

moveFiles "Garden Bench" "Front Garden" Garage
于 2013-06-07T05:19:21.753 回答