找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25461|回复: 9

[文件操作] [已解决]求助批处理怎么根据模板复制重命名日期格式并移动到对应日期文件夹?

[复制链接]
发表于 2024-3-26 15:53:51 | 显示全部楼层 |阅读模式
本帖最后由 1139054012 于 2024-3-27 10:54 编辑

怎么根据模板文件批量复制重命名日期格式并移动到对应日期文件夹?
目录下有个temples.xls文件
我想批量按指定年月复制这个文件并重命名

根据指定开始日期
2024/03/01
2024/04/01范围来生成文件
如果这里改成2025/05/01
生成两个月文件
就按照日期文件夹
2024年03月
2024年04月
把对应日期的文件复制对应文件夹



文件复制日期模板格式
模板2024.03.01.xls
.......
模板2024.03.31.xls

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2024-3-26 18:07:57 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-3-26 18:17 编辑

回复 1# 1139054012

以下代码存于目标文件(temples.xls)所在的目录下运行。
其运行结果是在该目录下创建了两个子目录》"2024年03月" 和 "2024年04月";
在第一个子目录中用目标文件复制出31个文件,其命名格式如 2024.03.nn.xls;
在第二个子目录中用目标文件复制出30个文件,其命名格式如 2024.04.nn.xls。

  1. @echo off &setlocal enabledelayedexpansion
  2. set "sF=temples.xls"
  3. set "m3=2024年03月"&set "m4=2024年04月"
  4. (md "%m3%"& md "%m4%") 2>nul
  5. for /L %%n in (1,1,31) do (set "d=0%%n"&copy /y "%sF%" "%m3%\2024.03.!d:~-2!.xls")>nul
  6. for /L %%n in (1,1,30) do (set "d=0%%n"&copy /y "%sF%" "%m4%\2024.04.!d:~-2!.xls")>nul
  7. exit/b
复制代码

评分

参与人数 1技术 +1 收起 理由
1139054012 + 1 感谢,在别的电脑测试成功

查看全部评分

发表于 2024-3-26 20:17:10 | 显示全部楼层
借助ai写了一条powershell命令
  1. @echo off
  2. rem 批处理保存为ansi编码格式

  3. set s=2024-03-01
  4. set e=2024-04-30
  5. cd /d "%~dp0"
  6. set n=0
  7. :loop
  8. for /f "tokens=1-3 delims=-" %%a in ('powershell -c "Get-Date '%s%' | ForEach-Object { $_.AddDays(%n%).ToString('yyyy-MM-dd') }"') do (
  9.         if "%s:~0,7%" neq "%e:~0,7%" (
  10.                 md "%%a年%%b月" 2>nul
  11.                 copy "temples.xls" "%%a年%%b月\模板%%a.%%b.%%c.xls"
  12.         ) else (
  13.                 copy "temples.xls" "模板%%a.%%b.%%c.xls"
  14.         )
  15.         if "%%a-%%b-%%c" lss "%e%" (
  16.                 set /a n+=1
  17.                 goto :loop
  18.         )
  19. )
  20. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
1139054012 + 1 感谢,完美解决

查看全部评分

 楼主| 发表于 2024-3-27 10:53:48 | 显示全部楼层
回复 2# aloha20200628

感谢,但是我这里双击报错,不知道什么原因
发表于 2024-3-27 11:30:20 | 显示全部楼层
回复 4# 1139054012

什么鬼能把代码行 set "sF=temples.xls" 一刀两断?楼主是复制的完整代码吗?
保存的代码脚本(例如 test.bat)是与目标文件temples.xls在同一目录吗?
二楼代码已在模拟楼主提供的示例环境中测试通过...
 楼主| 发表于 2024-3-27 11:39:22 | 显示全部楼层
回复 5# aloha20200628


是在同一目录下双击执行,直接复制的代码,保证bat路径没中文特殊符号,保存编码是ANSI格式,不知道为什么执行就这样

电脑系统是win10专业版22H2 内部版本19045.2728

3楼的代码就能正常执行,所以很奇怪
发表于 2024-3-27 12:36:46 | 显示全部楼层
回复 6# 1139054012

在win10系统环境下(22H2 内部版本19045.3324)再测试一遍,完好通过。
麻烦楼主能把存盘运行的test.bat文件内容粘贴出来看看吗?
 楼主| 发表于 2024-3-27 14:02:25 | 显示全部楼层
本帖最后由 1139054012 于 2024-3-27 14:05 编辑

回复 7# aloha20200628

谢谢,知道问题出在哪里了,代码本身没问题,回家用自己电脑测试一遍成功了

也不知道公司电脑什么鬼,就是没法成功运行
发表于 2024-3-27 15:52:50 | 显示全部楼层
回复 8# 1139054012


   
作为外行人,我有一个不成熟的猜想,试试在代码第二行多写几个汉字试试,记得用 rem 注释掉,看看结果如何
 楼主| 发表于 2024-3-27 16:31:28 | 显示全部楼层
回复 9# 77七


我把家里电脑运行正常的bat复制到公司电脑就成功运行了,应该手机复制粘贴保存txt那一步复制了看不见的符号,或者保存编码时出了问题,现在用运行正常的bat一点问题也没
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 04:52 , Processed in 0.022356 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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