无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
123
返回列表 发新帖
楼主: szmsys
打印 上一主题 下一主题

[已解决] 做个批处理,或vbs,把文件夹里指定日期的文件 移动到 新建的以日期为名称的文件夹里

  [复制链接]
61#
发表于 2023-9-8 21:54:21 | 只看该作者
szmsys 发表于 2023-9-8 21:09
那你根据提点,弄个稳定普适版

我那个就是普适版啊。适用于不同个性设置的机子。
回复

使用道具 举报

62#
发表于 2023-9-8 21:58:15 | 只看该作者
helloman 发表于 2023-9-8 21:42
去掉6-7行,把指定目录下昨日及以前的创建的文件移动到以昨日为文件名的文件夹,也挺方便的

去掉保护,在输入的时候,就要谨慎一点,要有心里准备可能引发不可知的结果。
回复

使用道具 举报

63#
 楼主| 发表于 2023-9-8 23:45:25 | 只看该作者
ppll2030 发表于 2023-9-7 23:40
吃完饭练练手。试试看吧。

使用中,又发现新问题,能不能只归类昨天及以前的文件,不要归类今天的文件。因为今天的还没完全准备好。

谢谢!

点评

那你用上一个把非当天文件转移到昨天文件夹的脚本一起用呗。 先把昨天以前的转移到昨天文件夹,再用这个脚本把里面的文件整理归类就好了。  详情 回复 发表于 2023-9-9 00:06
回复

使用道具 举报

64#
发表于 2023-9-9 00:06:18 | 只看该作者
szmsys 发表于 2023-9-8 23:45
使用中,又发现新问题,能不能只归类昨天及以前的文件,不要归类今天的文件。因为今天的还没完全准备好。 ...

那你用上一个把非当天文件转移到昨天文件夹的脚本一起用呗。
先把昨天以前的转移到昨天文件夹,再用这个脚本把里面的文件整理归类就好了。

点评

这个可行。只是,需要用任务计划每天定时运行,所以,还得一个批处理才行。因为昨天的文件夹名称每天都在变化。  详情 回复 发表于 2023-9-9 06:24
回复

使用道具 举报

65#
 楼主| 发表于 2023-9-9 06:24:16 | 只看该作者
ppll2030 发表于 2023-9-9 00:06
那你用上一个把非当天文件转移到昨天文件夹的脚本一起用呗。
先把昨天以前的转移到昨天文件夹,再用这个 ...

这个可行。只是,需要用任务计划每天定时运行,所以,还得一个批处理才行。因为昨天的文件夹名称每天都在变化。
回复

使用道具 举报

66#
 楼主| 发表于 2023-9-9 07:15:01 | 只看该作者
ppll2030 发表于 2023-9-4 10:43
两个关键点,一个昨天日期,一个关键字搜索。
刚好有空,嘚瑟一下。各位大佬轻喷。

大佬,能不能加一个判断句?如果没有符合条件的文件,就不新建文件夹,以免每天运行时,产生大量空文件夹。谢谢
回复

使用道具 举报

67#
发表于 2023-9-9 10:08:43 | 只看该作者
szmsys 发表于 2023-9-9 06:24
这个可行。只是,需要用任务计划每天定时运行,所以,还得一个批处理才行。因为昨天的文件夹名称每天都在 ...
  1. @echo off
  2. title: 根据文件的修改日期移动自身到对应修改日期命名的文件夹下

  3. for /f "tokens=3" %%i in ('reg query "HKCU\Control Panel\International" ^| findstr /ilc:"sShortDate"') do set sShortDate=%%i
  4. for /f "tokens=2,*" %%j in ('reg query "HKCU\Control Panel\International" ^| findstr /ilc:"sTimeFormat"') do set sTimeFormat=%%k
  5. reg add "HKCU\Control Panel\International" /f /v "sShortDate" /t REG_SZ /d "yyyy/MM/dd" >nul
  6. reg add "HKCU\Control Panel\International" /f /v "sTimeFormat" /t REG_SZ /d "HH:mm:ss" >nul

  7. set p=c:\sample
  8. for /f "tokens=1,3,*" %%i in ('dir /a-d %p% ^| findstr /ilc:"/" ^| findstr /ilvc:"%date%"') do call :filing %%i "%%k"

  9. reg add "HKCU\Control Panel\International" /f /v "sShortDate" /t REG_SZ /d "%sShortDate%" >nul
  10. reg add "HKCU\Control Panel\International" /f /v "sTimeFormat" /t REG_SZ /d "%sTimeFormat%" >nul

  11. cls&echo.&echo 所有文件整理完成。
  12. timeout /t 3 >nul
  13. start %p%
  14. exit

  15. :filing
  16. set f=%1
  17. set f=%f:/=-%
  18. echo %f%
  19. if not exist %p%\%f% md %p%\%f%
  20. move %p%\%2 %p%\%f%
复制代码

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 谢谢大佬!

查看全部评分

回复

使用道具 举报

68#
发表于 2023-9-9 10:14:41 | 只看该作者
szmsys 发表于 2023-9-9 07:15
大佬,能不能加一个判断句?如果没有符合条件的文件,就不新建文件夹,以免每天运行时,产生大量空文件夹 ...
  1. @echo off

  2. (echo d=Date(^)-1
  3. echo yd=Right(DatePart("yyyy",d^),4^)^&"-"^&Right("0"^&DatePart("m",d^),2^)^&"-"^&Right("0"^&DatePart("D",d^),2^)
  4. echo wscript.echo yd
  5. ) > yd.vbs

  6. for /f %%a in ('cscript yd.vbs') do set yd=%%a
  7. del /q yd.vbs
  8. echo.&echo 即将把%yd%的文件全部转移到%yd%文件夹下。
  9. echo.&pause

  10. set p=c:\sample
  11. ::md "%p%\%yd%" >nul 2>nul
  12. FOR /f "delims=" %%a IN ('dir /b /a:a %p% ^| FINDSTR /ilc:%yd%') DO (
  13.         if not exist %p%\%yd% md %p%\%yd%
  14.         move "%p%\%%a" "%p%\%yd%" )>nul
  15. cls&echo.&if not exist %p%\%yd% (echo %yd%没有发现任何文件。) else echo %yd%的文件转移完成。
  16. timeout /t 2 >nul
复制代码

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 谢谢大佬!

查看全部评分

回复

使用道具 举报

69#
发表于 2023-9-20 15:01:53 | 只看该作者
感觉把逻辑搞复杂了,既然是天天都要运行,在每晚23:59 把当天的文件放到今天日期目录下不就好了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-6-18 05:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表