无忧启动论坛

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

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

  [复制链接]
31#
发表于 2023-9-6 14:10:50 | 只看该作者
szmsys 发表于 2023-9-6 08:14
试了,能生成文件夹,但是没有转移文件。是不是你的注册表项有问题?

你看运行时的的提示。第一个日期是yyyy/mm/dd 就是注册表成功了,还有任务栏右下角也应该是这个格式的,反之就用管理员权限运行。
再看这个日期是昨天的,也就是取值成功了。反之就看看你系统时间对不对吧。
这个只是在第二版基础上添加了注册表修改和还原。
这样不管你原来什么格式的日期,都不影响脚本运行。
回复

使用道具 举报

32#
 楼主| 发表于 2023-9-6 14:34:56 | 只看该作者

又测试了,发现 C:\sample 无效,但是 D:\sample 只移动昨天生成的文件,不移动前天及更早生成的文件,真是奇怪。

点评

你是不是混乱了。我的脚本没出现过D:\sample  详情 回复 发表于 2023-9-6 14:49
回复

使用道具 举报

33#
发表于 2023-9-6 14:49:54 | 只看该作者
szmsys 发表于 2023-9-6 14:34
又测试了,发现 C:\sample 无效,但是 D:\sample 只移动昨天生成的文件,不移动前天及更早生成的文件,真 ...

你是不是混乱了。我的脚本没出现过D:\sample

点评

我把 set p=c:\sample 改成 set p=d:\sample 测试的  详情 回复 发表于 2023-9-6 14:58
回复

使用道具 举报

34#
 楼主| 发表于 2023-9-6 14:58:52 | 只看该作者
ppll2030 发表于 2023-9-6 14:49
你是不是混乱了。我的脚本没出现过D:\sample

我把 set p=c:\sample 改成 set p=d:\sample 测试的

点评

你都把路径改了。你还想原路径怎么生效 还有,你自己看看标题和要求。自己把自己都搞混了  详情 回复 发表于 2023-9-6 15:10
回复

使用道具 举报

35#
发表于 2023-9-6 15:10:51 | 只看该作者
本帖最后由 ppll2030 于 2023-9-6 15:19 编辑
szmsys 发表于 2023-9-6 14:58
我把 set p=c:\sample 改成 set p=d:\sample 测试的
批处理,或vbs,在 C:\sample\ 里面生成一个 以昨天的日期为名称的文件夹,比如,今天是2023年9月4日,则生成一个名称是 2023-09-03 的文件夹,然后,把 C:\sampke 文件夹里 生成日期为 2023-09-03 全部文件移动到这个文件夹里,不是此日期生成的文件,不移动。

你都把路径改了。你还想原路径怎么生效
还有,你自己看看标题和要求。自己把自己都搞混了
脚本里有中文的,
  1. title: 查找和移动前一天创建的文件到前一天命名的文件夹
复制代码
而且,运行脚本时,窗口上方也有提示的


点评

那我想改路径,怎么办啊?  详情 回复 发表于 2023-9-6 15:18
回复

使用道具 举报

36#
 楼主| 发表于 2023-9-6 15:18:32 | 只看该作者
ppll2030 发表于 2023-9-6 15:10
你都把路径改了。你还想原路径怎么生效
还有,你自己看看标题和要求。自己把自己都搞混了{:1_1 ...

那我想改路径,怎么办啊?

点评

我。。。。。。 你要改就改啊。改了哪个,就对哪个生效啊。 难道你改了,还想对原来的生效???那你改的意义是什么???  详情 回复 发表于 2023-9-6 15:21
回复

使用道具 举报

37#
发表于 2023-9-6 15:21:39 | 只看该作者
szmsys 发表于 2023-9-6 15:18
那我想改路径,怎么办啊?

我。。。。。。
你要改就改啊。改了哪个,就对哪个生效啊。
难道你改了,还想对原来的生效???那你改的意义是什么???
回复

使用道具 举报

38#
发表于 2023-9-6 22:32:17 | 只看该作者
batche 发表于 2023-9-5 00:35
有这么简单的批处理算法吗?分享一下,主要是跨月、跨年和日期显示格式的问题,没有日期函数的话,批处理 ...

为了让更多人看多,已单独发帖。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=437209
回复

使用道具 举报

39#
发表于 2023-9-6 23:39:37 | 只看该作者
我觉得楼主的需求描述把人带到了误区,既然每天运行,都要把所谓昨天日期的文件移动到昨天日期的文件夹里面,那么最终的结果就是除了今天之外,以往都有文件相关日期的文件夹。

所以楼主实际最终结果的需求是:将该文件夹下非今天日期的文件移动到该文件日期的文件夹里面,其实就是文件按日期分类。

于是乎,根本不用计算所谓的昨天日期,只需判断文件日期是否今天,否则就移动到它自己日期的文件夹里面。

点评

确实。根据自身日期自动归类更方便了。可以一段时间,或是需要查看的时候,整理一次即可。  详情 回复 发表于 2023-9-7 10:43
麻烦给个成品批处理试试,谢谢  详情 回复 发表于 2023-9-7 10:35
回复

使用道具 举报

40#
 楼主| 发表于 2023-9-7 10:35:01 | 只看该作者
nttwqz 发表于 2023-9-6 23:39
我觉得楼主的需求描述把人带到了误区,既然每天运行,都要把所谓昨天日期的文件移动到昨天日期的文件夹里面 ...

麻烦给个成品批处理试试,谢谢
回复

使用道具 举报

41#
发表于 2023-9-7 10:43:30 | 只看该作者
nttwqz 发表于 2023-9-6 23:39
我觉得楼主的需求描述把人带到了误区,既然每天运行,都要把所谓昨天日期的文件移动到昨天日期的文件夹里面 ...

确实。根据自身日期自动归类更方便了。可以一段时间,或是需要查看的时候,整理一次即可。

点评

老大给个成品批处理试试啊  详情 回复 发表于 2023-9-7 11:13
回复

使用道具 举报

42#
 楼主| 发表于 2023-9-7 11:13:15 | 只看该作者
ppll2030 发表于 2023-9-7 10:43
确实。根据自身日期自动归类更方便了。可以一段时间,或是需要查看的时候,整理一次即可。

老大给个成品批处理试试啊

点评

吃完饭练练手。试试看吧。  详情 回复 发表于 2023-9-7 23:40
@echo off setlocal enabledelayedexpansion set title=按文件日期归类 title %title% ::需要归类的目录 pushd %~dp0\test for /f %%a in ("%date:/=-%") do set "today=%%a" for /f %%a in ('dir /b *.t  详情 回复 发表于 2023-9-7 22:05
回复

使用道具 举报

43#
发表于 2023-9-7 22:05:22 | 只看该作者
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set title=按文件日期归类
  4. title %title%

  5. ::需要归类的目录
  6. pushd %~dp0\test

  7. for /f %%a in ("%date:/=-%") do set "today=%%a"
  8. for /f %%a in ('dir /b *.txt 2^>nul') do (
  9.         for /f %%b in ("%%~ta") do (
  10.                 set "filedate=%%b"
  11.                 set "filedate=!filedate:/=-!"
  12.                 if not "!filedate!"=="%today%" (
  13.                         set /a n+=1
  14.                         set "list_!n!_file=%%~nxa"
  15.                         set "list_!n!_date=!filedate!"
  16.                 )
  17.         )
  18. )

  19. if !n! EQU 0 (
  20.         color 4f
  21.         echo;无文件可归类!
  22. ) else (
  23.         for /l %%a in (1 1 !n!) do (
  24.                 title %title% %%a/!n!
  25.                 echo 正在移动 !list_%%a_file!
  26.                 if not exist "!list_%%a_date!" mkdir "!list_%%a_date!"
  27.                 move !list_%%a_file! !list_%%a_date!\ >nul
  28.         )
  29.         echo;
  30.         echo;
  31.         echo;文件按日期归类完毕!
  32.         color 2f
  33. )
  34. echo;
  35. pause
复制代码

点评

按照修改日期归档到以修改日期命名的文件夹,挺好!  详情 回复 发表于 2023-9-8 21:41
回复

使用道具 举报

44#
发表于 2023-9-7 22:48:21 来自手机 | 只看该作者
说起来,现代操作系统都支持文件分组显示,且支持文件名、文件类型、文件大小、文件修改时间等多种分组方式,所以个人感觉,楼主根本就没有归类的必要,直接分组显示即可。
回复

使用道具 举报

45#
发表于 2023-9-7 23:40:14 | 只看该作者
szmsys 发表于 2023-9-7 11:13
老大给个成品批处理试试啊

吃完饭练练手。试试看吧。
  1. @echo off
  2. title: 根据文件的创建日期移动其到对应创建日期命名的文件夹下

  3. :begin
  4. echo.&set /p p=  请输入需整理的文件夹路径(例如:c:\sample ):
  5. if not defined p echo 没发现文件夹路径 &pause&cls&goto :begin
  6. if "%p:~1,2%"==":" (if "%p:~-1%"==" " (set p=%p:~0,-1%)) else (echo 你输入的路径不正确 &pause&cls&goto :begin)
  7. for /f "tokens=3" %%i in ('reg query "HKCU\Control Panel\International" ^| findstr /ilc:"sShortDate"') do set sShortDate=%%i
  8. for /f "tokens=2,*" %%j in ('reg query "HKCU\Control Panel\International" ^| findstr /ilc:"sTimeFormat"') do set sTimeFormat=%%k
  9. reg add "HKCU\Control Panel\International" /f /v "sShortDate" /t REG_SZ /d "yyyy/MM/dd" >nul
  10. reg add "HKCU\Control Panel\International" /f /v "sTimeFormat" /t REG_SZ /d "HH:mm:ss" >nul
  11. for /f "tokens=1,3,*" %%i in ('dir /a-d /tc %p% ^| findstr /ilc:"/"') do call :filing %%i "%%k"
  12. reg add "HKCU\Control Panel\International" /f /v "sShortDate" /t REG_SZ /d "%sShortDate%" >nul
  13. reg add "HKCU\Control Panel\International" /f /v "sTimeFormat" /t REG_SZ /d "%sTimeFormat%" >nul
  14. cls&echo.&echo 所有文件整理完成。
  15. timeout /t 3 >nul
  16. start %p%
  17. exit

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

点评

使用中,又发现新问题,能不能只归类昨天及以前的文件,不要归类今天的文件。因为今天的还没完全准备好。 谢谢!  详情 回复 发表于 2023-9-8 23:45
去掉6-7行,把指定目录下昨日及以前的文件移动到以昨日为文件名的文件夹,也挺方便的  详情 回复 发表于 2023-9-8 21:42
把第 06 07 两行的 if 语句去掉,测试成功,不知道这两行干嘛的?  详情 回复 发表于 2023-9-8 12:17
把第 06 07 两行的 if 语句去掉,测试成功,不知道这两行干嘛的?  发表于 2023-9-8 12:16
win7测试失败,麻烦检查一下  详情 回复 发表于 2023-9-8 12:05

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 辛苦了,我试试

查看全部评分

回复

使用道具 举报

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

辛苦了,我试试
回复

使用道具 举报

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

win7测试失败,麻烦检查一下
回复

使用道具 举报

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

把第 06 07 两行的 if 语句去掉,测试成功,不知道这两行干嘛的?

点评

防止直接回车,和输入错误格式比如后尾带空格等,造成运行失败。  详情 回复 发表于 2023-9-8 14:26
回复

使用道具 举报

49#
发表于 2023-9-8 14:26:06 | 只看该作者
szmsys 发表于 2023-9-8 12:17
把第 06 07 两行的 if 语句去掉,测试成功,不知道这两行干嘛的?

防止直接回车,和输入错误格式比如后尾带空格等,造成运行失败。

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 明白了,我已删除这两行

查看全部评分

回复

使用道具 举报

50#
发表于 2023-9-8 16:54:53 | 只看该作者
win7 不知道有没有 forfiles 命令

  1. forfiles /m *.txt /c "cmd /c md @fdate&copy @path @fdate"
复制代码

不用理它建目录的出错信息。

什么年代了还在用win7啊!

点评

就这一行代码就行?连个文件夹路径都没有  详情 回复 发表于 2023-9-8 19:50
还是大佬厉害啊。又学到一招  详情 回复 发表于 2023-9-8 17:17

评分

参与人数 1无忧币 +5 收起 理由
szmsys + 5 厉害了

查看全部评分

回复

使用道具 举报

51#
发表于 2023-9-8 17:17:28 | 只看该作者
水泊蓝山 发表于 2023-9-8 16:54
win7 不知道有没有 forfiles 命令

还是大佬厉害啊。又学到一招

点评

只有这一行代码就行?连个文件夹路径都没有  详情 回复 发表于 2023-9-8 19:50
回复

使用道具 举报

52#
 楼主| 发表于 2023-9-8 19:50:30 | 只看该作者
ppll2030 发表于 2023-9-8 17:17
还是大佬厉害啊。又学到一招

只有这一行代码就行?连个文件夹路径都没有
回复

使用道具 举报

53#
 楼主| 发表于 2023-9-8 19:50:54 | 只看该作者
水泊蓝山 发表于 2023-9-8 16:54
win7 不知道有没有 forfiles 命令

就这一行代码就行?连个文件夹路径都没有

点评

有局限性,不过完成你那个修改日期的需求足够了。前提也是你要修改过日期显示不能出现"/"。不然会出错找不到文件夹路径。  详情 回复 发表于 2023-9-8 20:37
回复

使用道具 举报

54#
发表于 2023-9-8 20:37:04 | 只看该作者
szmsys 发表于 2023-9-8 19:50
就这一行代码就行?连个文件夹路径都没有

有局限性,不过完成你那个修改日期的需求足够了。前提也是你要修改过日期显示不能出现"/"。不然会出错找不到文件夹路径。

点评

算了 还是你的靠谱  详情 回复 发表于 2023-9-8 20:54
回复

使用道具 举报

55#
 楼主| 发表于 2023-9-8 20:54:20 | 只看该作者
ppll2030 发表于 2023-9-8 20:37
有局限性,不过完成你那个修改日期的需求足够了。前提也是你要修改过日期显示不能出现"/"。不然会出错找 ...

算了 还是你的靠谱

点评

大佬只是提点。具体需求还是要自己要动手滴。  详情 回复 发表于 2023-9-8 21:04
回复

使用道具 举报

56#
发表于 2023-9-8 21:04:46 | 只看该作者
szmsys 发表于 2023-9-8 20:54
算了 还是你的靠谱

大佬只是提点。具体需求还是要自己要动手滴。

点评

那你根据提点,弄个稳定普适版  详情 回复 发表于 2023-9-8 21:09
回复

使用道具 举报

57#
 楼主| 发表于 2023-9-8 21:09:35 | 只看该作者
ppll2030 发表于 2023-9-8 21:04
大佬只是提点。具体需求还是要自己要动手滴。

那你根据提点,弄个稳定普适版

点评

我那个就是普适版啊。适用于不同个性设置的机子。  详情 回复 发表于 2023-9-8 21:54
回复

使用道具 举报

58#
发表于 2023-9-8 21:41:17 | 只看该作者

按照修改日期归档到以修改日期命名的文件夹,挺好!
回复

使用道具 举报

59#
发表于 2023-9-8 21:42:57 | 只看该作者
ppll2030 发表于 2023-9-7 23:40
吃完饭练练手。试试看吧。

去掉6-7行,把指定目录下昨日及以前的创建的文件移动到以昨日为文件名的文件夹,也挺方便的

点评

去掉保护,在输入的时候,就要谨慎一点,要有心里准备可能引发不可知的结果。  详情 回复 发表于 2023-9-8 21:58
回复

使用道具 举报

60#
发表于 2023-9-8 21:44:10 | 只看该作者
跟着楼主蹭批处理整理桌面,挺好!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-19 02:43

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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