[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 9# 77七


我把家里电脑运行正常的bat复制到公司电脑就成功运行了,应该手机复制粘贴保存txt那一步复制了看不见的符号,或者保存编码时出了问题,现在用运行正常的bat一点问题也没

TOP

回复 8# 1139054012


   
作为外行人,我有一个不成熟的猜想,试试在代码第二行多写几个汉字试试,记得用 rem 注释掉,看看结果如何
bat小白,请多指教!谢谢!

TOP

本帖最后由 1139054012 于 2024-3-27 14:05 编辑

回复 7# aloha20200628

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

也不知道公司电脑什么鬼,就是没法成功运行

TOP

回复 6# 1139054012

在win10系统环境下(22H2 内部版本19045.3324)再测试一遍,完好通过。
麻烦楼主能把存盘运行的test.bat文件内容粘贴出来看看吗?

TOP

回复 5# aloha20200628


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

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

3楼的代码就能正常执行,所以很奇怪

TOP

回复 4# 1139054012

什么鬼能把代码行 set "sF=temples.xls" 一刀两断?楼主是复制的完整代码吗?
保存的代码脚本(例如 test.bat)是与目标文件temples.xls在同一目录吗?
二楼代码已在模拟楼主提供的示例环境中测试通过...

TOP

回复 2# aloha20200628

感谢,但是我这里双击报错,不知道什么原因

TOP

借助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

评分人数

bat小白,请多指教!谢谢!

TOP

本帖最后由 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

评分人数

    • 1139054012: 感谢,在别的电脑测试成功技术 + 1

TOP

返回列表