每天根据批处理文件的名称保存文件

时间:2018-12-17 14:41:17

标签: batch-file task

是否有可能每天写一个批处理文件以将文件复制到特定文件夹中?

例如,今天我有一个名为pinco17-12-2018的文件,我希望它自动在文件夹12中移动。

明天我将有pinco18-12-2018,它将在12文件夹中移动。 下个月,我将有pinco1-1-2019,它必须放在名为1的文件夹中。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

for %%a in ("%userprofile%\desktop\Files1\pinco*") do (
  for /f "tokens=2 delims=-" %%b in ("%%~na") do (
    md "%userprofile%\desktop\Files2\%%b" 2>nul
    move "%%a" "%userprofile%\desktop\Files2\%%b\"
  )
)

翻译成普通英语:

  • 对于指定文件夹中所有以pinco开头的文件,请执行以下操作:
  • 获取月份(用-分隔时文件名的第二个标记)
  • 在指定文件夹中创建该月份的文件夹(如果已存在,则不显示错误)
  • 将文件移动到该文件夹​​中

关于您的最新评论(2019年1月7日):

是的,这是可能的。只需扩展文件名(%%~nF)的标记化,其中%%a将是月份,而%%b将是年份:

@echo off
for %%F in ("%userprofile%\desktop\Files1\pinco*_*_*) do (
  for /f "tokens=2,3 delims=-" %%a in ("%%~nF") do (
    md "%userprofile%\desktop\Files2\%%b\%%a" 2>nul
    move "%%~fF" "%userprofile%\desktop\Files2\%%b\%%a\%%~nxF"
  )
)