bat 复制文件多次并重命名

bat复制同一个文件多次并且重新命名,执行bat文件后目标文件夹为空,不知道什么原因复制不成功,
有了解的指导一下吗?

img

把下面代码复制到文件,保存后缀名为bat就可以了


:main
@echo off
set /p month=请输入月份
set /p day=请输入当月天数

if %day%==31 goto 31if %day%==30 goto 30if %day%==29 goto 29if %day%==28 goto 28天

cls
@echo 输入的天数不符合
goto main

:31天
@echo    在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,31) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit

:30天
@echo    在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,30) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit

:29天
@echo    在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,29) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit

:28天
@echo    在D盘创建test2文件夹
md D:\test2
for /l %%i in (1,1,28) do copy D:\test1\module.csv D:\test2\module_2020%month%%%i.csv
goto exit

:exit
pause
exit

提供一种思路:bat文件的默认打开方式被改成编辑方式了。
而编辑是用记事本打开的,所以执行bat文件后目标文件夹为空
分析解决:打开cmd运行 assoc .bat=batfile ,接着资源管理器,文件夹选项,新建扩展名.bat高级选中ms-dos批处理文件,在文件夹选项中会多出一个BAT文件的操作,选中,点高级,把文件默认执行操作设定为open
思路2:右键管理员运行,但必须在第一行加入cd /d %~dp0

%%d哪里来的?for /l %%d吧?代码请用代码插入功能插入。

可以的,你的语法有些问题

@echo off
set /p month=month
set /p day=day
if %day%==31 (
for %%d in (1,1,%day%) do (copy E:\test\module.csv E:\test1\test%month%%%d.csv) 
goto aa)
if %day%==30 (
for %%d in (1,1,%day%) do (copyE:\test\module.csv E:\test1\test%month%%%d.csv) 
goto aa)
if %day%==29 (
for %%d in (1,1,%day%) do (copy E:\test\module.csv E:\test1\test%month%%%d.csv) 
goto aa)
if %day%==28 (
for %%d in (1,1,%day%) do (copy E:\test\module.csv E:\test1\test%month%%%d.csv) 
goto aa)

echo 'input error'

:aa
pause
exit